je suis en train de faire un script qui parcoure une liste de fichier excel, il les ouvre, défini une zone d'impression, les exporte en PDF puis les ferme.
Mon problème est le suivant :lorsque j'ouvre un fichier en lecture seule ou que je souhaite le fermer sans enregistrer, la boite de dialogue suivante " Voulez-vous enregistrer les modifications .... " s'affiche automatiquement. Cette boite de dialogue empêche l'éxcécution de la fin du code. Est il possible de s'affranchir de cette boite de dialogue ?
je vous remercie de l'attention portée a mon problème.
Code : Tout sélectionner
Func _xls2pdf($Destination,$Repertoire,$Non,$source,$Ecraser)
; Argument 1 chemain generale de destination
; Argument 2 dosier de destination
; Argument 3 non du fichier
; Argument 4 fichier a convertir
; Argument 5 comportement ci le pdf existe deja 1 ecrase 0 passe
Local Const $PaperA4 = 9, $Portrait = 1
Local Const $PrintZonne = "$A$1:$Q$54"
Local const $pdf = ".pdf"
If not FileExists($Destination & $Repertoire) Then
If Not DirCreate ( $Destination & $Repertoire) Then Return ("Impossible de crer le repertoire" & $Repertoire )
EndIf
If FileExists($Destination & $Repertoire & "\" & $Non & ".pdf") Then
If $Ecraser Then
if FileDelete($Destination & $Repertoire & "\" & $Non & ".pdf") then
Else
Return ("Impossible de suprimer le fichier" & $Destination & $Repertoire & "\" & $Non & ".pdf")
EndIf
Else
Return ("Le fichier " & $Destination & $Repertoire & "\" & $Non & ".pdf existe deja")
EndIf
EndIf
Local $oAppl=_Excel_Open(True);False rans le claseur visible
If @error Then Return("L'objet excel necessaire a la convertion en pdf n'as pas pu etre crée!")
Local $oWorkbook2 = _Excel_BookOpen($oAppl, $source, True) ; True ouvre le classeur en lecture seul problème lore de la fermeture propose d'enregistrer
If @error Then Return ("Impossible d'ouvrir le fichier; " & $source)
Local $aSheets = _Excel_SheetList($oWorkbook2)
If @error then Return ("Erreur lors de l'énumération des feuilles")
For $i = 0 To UBound($aSheets) - 1
If $aSheets[$i][1].Visible <> $xlSheetVisible Then ContinueLoop
$oAppl.PrintCommunication = False
$aSheets[$i][1].PageSetup.PaperSize = $PaperA4
$aSheets[$i][1].PageSetup.Orientation = $Portrait
$aSheets[$i][1].PageSetup.FitToPagesWide = 1
$aSheets[$i][1].PageSetup.FitToPagesTall = 1
$aSheets[$i][1].PageSetup.PrintArea = $PrintZonne
If @error Then Return ("Erreur de configuration de la mise en page" & @CRLF & "@error = " & @error & ", @extended = " & @extended & @CRLF)
Next
_Excel_Export($oAppl, $oWorkbook2, $Destination & $Repertoire & "\" & $Non & $pdf, Default, Default, False, Default, Default, False)
_Excel_BookClose ($oWorkbook2,False)
_Excel_Close($oAppl)
If @error Then Return("Erreur de sauvegarde pdf: " & $Non & ".pdf" & @CRLF & "@error = " & @error & ", @extended = " & @extended & @CRLF)
Return True
EndFunc