Macro copie classeur excel

Fermé
tofwolf Messages postés 3 Date d'inscription lundi 5 janvier 2015 Statut Membre Dernière intervention 5 janvier 2015 - 5 janv. 2015 à 12:48
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 - 20 janv. 2015 à 16:29
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
A voir également:

9 réponses

jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
5 janv. 2015 à 13:21
Bonjour,

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



0
tofwolf Messages postés 3 Date d'inscription lundi 5 janvier 2015 Statut Membre Dernière intervention 5 janvier 2015
5 janv. 2015 à 15:20
J ai essayé mais rien ne se passe...
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
5 janv. 2015 à 15:44
Tu 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 enregistrer
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

0
tofwolf Messages postés 3 Date d'inscription lundi 5 janvier 2015 Statut Membre Dernière intervention 5 janvier 2015
5 janv. 2015 à 17:02
Je n'arrive pas à lire les réponses; il n'y a que le début de la réponse qui apparait
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
5 janv. 2015 à 17:29
Et 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

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
20 janv. 2015 à 15:22
C'est à toi de le mettre dans WORKBOOK
0
tofleveque > jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024
20 janv. 2015 à 15:33
Quand 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
0
tofleveque > jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024
20 janv. 2015 à 15:40
J'ai essayé avec workbook_SheetChange
Cela me met une erreur de compil
"Membre de méthode ou de données introuvables"
0
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
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
20 janv. 2015 à 15:36
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
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
20 janv. 2015 à 15:42
Quand je vais dans workbook dans le menu déroulant à droite il n'y a pas workbook_AfterSave


Ah bon ???

Si tu n'as pas ça ... soit tu as une vielle version d'Excel ... soit tu n'es pas sous Excel....
Quelle version d'office as tu ?


0
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"
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
20 janv. 2015 à 16:29
Si tu as le Before .. tu dois aussi avoir le After ... !!

Si tu as une erreur... cela est surement dû à ta version d'excel... peux tu enfin me répondre et nous dire QUELLE VERSION d'OFFICE AS TU ???
0