Macro enregistrement pdf dossier spécifique
Fulerty -
Bonjour,
J'ai une macro qui me permet de faire un PDF d'une plage prédéfinie et de l'enregistrer dans un dossier prévu pour. Puis d'actualiser cette plage à l'aide d'un menu déroulant et de répéter l'opération.
Elle marche très bien, j'aimerai juste pousser le bouchon plus loin en lui demandant quand elle enregistre un fichier avec nom = CCM par exemple, alors elle cherche si il y a un dossier qui a le même nom, si oui elle l'enregistre dedans, sinon elle le crée et l'enregistre dedans.
Je suis pas expert, je bidouille juste quelques trucs et je suis arrivé à cela, et depuis je bloque, mon MkDir ne marche pas.
Pouvez-vous m'aider svp ?
Sub Impression_PDF_Janvier() Dim cell As Range For Each cell In Range("TRANSPORTEUR") Range("LISTE1").Value = cell Application.Run ("pdf_janvier") Next cell MsgBox ("Terminé") End Sub Sub pdf_janvier() Sheets("Edition transporteurs").Select Dim GestionFichier As New Scripting.FileSystemObject ' On commence par définir une variable de type Folder : Dim Dossier As Folder, res As String, CodeTPT As String, chemin As String Dim Creation As String Dim Mon_Transporteur As String Mon_Transporteur = Range("LISTE1").Value Application.Goto Reference:="SUIVI1" CodeTPT = ActiveSheet.Range("G260") nomTPT = ActiveSheet.Range("I260").Value nomfichier = CodeTPT & "-" & nomTPT & ".pdf" chemin = "C:\Users\mb\Test" ' Cette boucle parcourt tous les dossiers For Each Dossier In GestionFichier.GetFolder(chemin).SubFolders res = Left(Dossier.Name, CodeTPT) If res = CodeTPT Then Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ nomfichier & ".pdf", Quality:= _ xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ From:=1, To:=1, OpenAfterPublish:=False _ Set GestionFichier = Nothing Exit Sub End If Next ' si le dossier n'existe pas création Creation = chemin & CodeTPT & " - " & nomTPT & "\" MkDir (Creation) Set GestionFichier = Nothing End If End Sub
Windows / Edge 108.0.1462.76
- Macro enregistrement pdf dossier spécifique
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Dossier appdata - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment faire un dossier pdf - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
25 réponses
Re,
Quelle est la différence avec mon code ? Je veux un enregistrement dans tous les cas, qu'il y ai le dossier ou non :(
Re,
C'est mon code actuellement utilisé. Il marche ! Il crée les dossiers s'ils n'existent pas, puis enregistre dedans. C'est top.
Ce qui marche pas, c'est quand le dossier existe déjà, là ça bug et ça ne fait pas l'enregistrement dans le dossier souhaité.
Je ne suis peut-être pas clair
Re,
If Dir(FolderPath, vbDirectory) = "" Then 'creation si existe pas MkDir FolderPath end if 'enregistrement ChDir FolderPath Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nomFichier & ".pdf", Quality:= _ xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ from:=1, To:=1, OpenAfterPublish:=False 'ou Chemin complet dans Filename If Dir(FolderPath, vbDirectory) = "" Then MkDir FolderPath End If Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FolderPath & "\" & nomFichier & ".pdf", Quality:= _ xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ from:=1, To:=1, OpenAfterPublish:=False
Waouh, la première marche à la perfection. La deuxième quant à elle me fait une erreur 1004 et ne parvient pas à enregistrer le PDF. Mais la première marche !!!!
Merci beaucoup beaucoup pour votre temps et votre patience :D C'est trop bien !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBonjour,
Je l'essaierai lundi ou mardi.
En tout cas, la première version marche à merveille, j'ai adapté celle-ci à d'autres macros et tous mes fichiers viennent dans le dossier et c'est merveilleux ! Sur une si grosse quantité de fichier et dossier à générer, le gain de temps est énorme.
Merci beaucoup!
Re,
Quelle est la différence avec mon code ?
c'est le code que vous avez mis dans le post <16>
Vous devriez mettre a diso le code que vous utilisez actuellement si vous l'avez modifie