Macro copie classeur excel
Bonjour,
J'aimerai une macro qui, à chaque sauvegarde de mon classeur, crée une copie de ce classeur dans un autre répertoire au format PDF.
Est ce possible ? Pouvez vous m'aider ?
Merci
Christophe
J'aimerai une macro qui, à chaque sauvegarde de mon classeur, crée une copie de ce classeur dans un autre répertoire au format PDF.
Est ce possible ? Pouvez vous m'aider ?
Merci
Christophe
9 réponses
-
ModérateurBonjour,
Code à placer dans l'objet thisWorkbook de ton éditeur VBA.
Private Sub Workbook_AfterSave(ByVal Success As Boolean) Dim RepToSave As String Dim ceClasseur As Workbook Set ceClasseur = ThisWorkbook RepToSave = "c:\TEMP\" ThisWorkbook.SaveCopyAs RepToSave & ceClasseur.Name End Sub
-
J ai essayé mais rien ne se passe...
-
ModérateurTu as changé la variable RepToSave ?
Par contre je viens de voir que tu voulais en PDF ....
J'avais mal lu...
Le code ci-dessous exportera en PDF la feuille active du classeur lorsque tu cliqueras sur enregistrerPrivate Sub Workbook_AfterSave(ByVal Success As Boolean) Dim RepToSave As String RepToSave = "c:\TEMP" 'sauvegarde de la feuille active en PDF Call PDFActiveSheet(RepToSave) End Sub Sub PDFActiveSheet(RepToSave As String) Dim ws As Worksheet Dim strPath As String Dim myFile As Variant Dim strFile As String On Error GoTo errHandler Set ws = ActiveSheet 'enter name and select folder for file ' start in current workbook folder strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _ & "_" _ & Format(Now(), "yyyymmdd\_hhmm") _ & ".pdf" strFile = RepToSave & "\" & strFile myFile = strFile If myFile <> "False" Then ws.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=myFile, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False MsgBox "PDF file has been created." End If exitHandler: Exit Sub errHandler: MsgBox "Could not create PDF file" Resume exitHandler End Sub
-
-
Je n'arrive pas à lire les réponses; il n'y a que le début de la réponse qui apparait
-
ModérateurEt là tu peux tout lire ?
Private Sub Workbook_AfterSave(ByVal Success As Boolean) Dim RepToSave As String RepToSave = "c:\TEMP" 'sauvegarde de la feuille active en PDF Call PDFActiveSheet(RepToSave) End Sub Sub PDFActiveSheet(RepToSave As String) Dim ws As Worksheet Dim strPath As String Dim myFile As Variant Dim strFile As String On Error GoTo errHandler Set ws = ActiveSheet 'enter name and select folder for file ' start in current workbook folder strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _ & "_" _ & Format(Now(), "yyyymmdd\_hhmm") _ & ".pdf" strFile = RepToSave & "\" & strFile myFile = strFile If myFile <> "False" Then ws.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=myFile, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False MsgBox "PDF file has been created." End If exitHandler: Exit Sub errHandler: MsgBox "Could not create PDF file" Resume exitHandler End Sub
-
Bonjour,
J'ai essayé ta solution, cela ne fait rien; aucun fichier ne se créé dans le rep c:\temp. Dans VBA quand je saisi ta macro il le met dans general et non dans workbook-
-
@jordane45Quand je vais dans workbook dans le menu déroulant à droite il n'y a pas workbook_AfterSave. Quand je saisi manuellement la premiere ligne cela me met dans general
-
@jordane45J'ai essayé avec workbook_SheetChange
Cela me met une erreur de compil
"Membre de méthode ou de données introuvables"
-
-
Je me mets dans workbook mais à partir du moment où je saise la première ligne cela change et ça se met dans général
-
J'ai répondu à cette même question il me semble postée deux fois :
https://forums.commentcamarche.net/forum/affich-31407537-macro-pour-copie-du-classeur-en-fichier-pdf -
Modérateur
-
J'ai trouvé : dans ma version j'ai workbook_BeforeSave.
Par contre il me met erreur de compil aprés le Le PDFActiveSheet
le débogeur me met membre de méthode ou de données introuvable et me surligne ".ExportAsFixedFormat"
