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
- Save as pdf office 2007 - Télécharger - Bureautique
- Comment faire un dossier pdf - Guide
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