Nounours4173
XLDnaute Nouveau
Bonjour,
J'utilise une macro dans un fichier pour enregistrer ma page au format .pdf
Cette macro nomme et enregistre le pdf automatiquement dans un dossier, qu'elle créé s'il n'existe pas.
Je veux réutiliser cette macro pour un autre fichier excel
J'ai adapté la macro pour la sélection de la zone d'impression et fait les modifs pour que ca enregistre dans le bon dossier.
La macro "d'origine" fonctionne correctement, enregistre le fichier pdf avec le bon nom dans le bon dossier et valide le tout par la box de dialogue comme prévu.
Celle que j'ai modifiée réagis a 2 comportement différents
le premier :
lorsque je lance la macro elle me demande bien dans quel dossier je veux enregistrer le fichier et contrairement à celle d'origine le dossier d'enregistrement s'ouvre (comme quand on fait enregistrer sous). Il faut que je clique sur "annuler" pour que la macro s'exécute normalement !
Second cas
idem que le premier cas mais il faut que je mette un nom dans "nom de fichier" et que je clique sur enregistrer pour que la macro s’exécute.
Le problème c'est que ça créé aussi un fichier avec le nom que j'ai remplis à la main, je me retrouve donc avec des fichiers en double.
Ci dessous la macro réagissant au second cas
Sub archive()
'
' archive Macro
'
NomDossier = Application.InputBox("Nom du dossier", "Creation du dossier", "Entrer le mois")
Chemin = "g:\Mon Drive\Ete 2025\Bus\Archives\" & NomDossier & "\"
'
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=2
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveSheet.Outline.ShowLevels RowLevels:=2
Range("A1😛52").Select
Selection.PrintOut Copies:=1, Collate:=True
On Error Resume Next
If NomDossier = "" Then
Exit Sub
Else
Dossierexistant = GetAttr(dossier) And vbDirectory
If Dossierexistant = False Then
MkDir (Chemin)
End If
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=Chemin & "Archive Bus " & Range("M1") & ".pdf", _
quality:=xkqualitystandard, _
includedocproperties:=True, _
IgnorePrintAreas:=False, from:=1, to:=1, _
openafterpublish:=False
MsgBox ("Et voilà !")
End If
End Sub
J'espère avoir été clair dans mes explications !
Merci par avance pour vos réponses
J'utilise une macro dans un fichier pour enregistrer ma page au format .pdf
Cette macro nomme et enregistre le pdf automatiquement dans un dossier, qu'elle créé s'il n'existe pas.
Je veux réutiliser cette macro pour un autre fichier excel
J'ai adapté la macro pour la sélection de la zone d'impression et fait les modifs pour que ca enregistre dans le bon dossier.
La macro "d'origine" fonctionne correctement, enregistre le fichier pdf avec le bon nom dans le bon dossier et valide le tout par la box de dialogue comme prévu.
Celle que j'ai modifiée réagis a 2 comportement différents
le premier :
lorsque je lance la macro elle me demande bien dans quel dossier je veux enregistrer le fichier et contrairement à celle d'origine le dossier d'enregistrement s'ouvre (comme quand on fait enregistrer sous). Il faut que je clique sur "annuler" pour que la macro s'exécute normalement !
Second cas
idem que le premier cas mais il faut que je mette un nom dans "nom de fichier" et que je clique sur enregistrer pour que la macro s’exécute.
Le problème c'est que ça créé aussi un fichier avec le nom que j'ai remplis à la main, je me retrouve donc avec des fichiers en double.
Ci dessous la macro réagissant au second cas
Sub archive()
'
' archive Macro
'
NomDossier = Application.InputBox("Nom du dossier", "Creation du dossier", "Entrer le mois")
Chemin = "g:\Mon Drive\Ete 2025\Bus\Archives\" & NomDossier & "\"
'
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=2
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveSheet.Outline.ShowLevels RowLevels:=2
Range("A1😛52").Select
Selection.PrintOut Copies:=1, Collate:=True
On Error Resume Next
If NomDossier = "" Then
Exit Sub
Else
Dossierexistant = GetAttr(dossier) And vbDirectory
If Dossierexistant = False Then
MkDir (Chemin)
End If
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=Chemin & "Archive Bus " & Range("M1") & ".pdf", _
quality:=xkqualitystandard, _
includedocproperties:=True, _
IgnorePrintAreas:=False, from:=1, to:=1, _
openafterpublish:=False
MsgBox ("Et voilà !")
End If
End Sub
J'espère avoir été clair dans mes explications !
Merci par avance pour vos réponses