Copier des PDF via VBA
Bonjour à tous,
Je souhaite savoir si il est possible de copier/coller des documents PDF depuis un dossier vers un autre dossier ?
Pour expliquer ma problématique, je souhaite créer un dossier de fiche technique type en format PDF sur mon PC et utiliser une macro VBA afin de copier/coller ces fiches techniques dans des dossiers projets.
Merci d'avance pour vos réponses !
Bonjour,
Ton besoin reste général, je vais commencer par te répondre d'une façon assez globale ... si tu maîtrises bien le VBA tu peux puiser dans le fichier les fonctions essentielles qui sont
la création d'un répertoire
Sub creation(repertoire As String)
Dim fso As Object
Dim rep As String
Dim tabrep, i%
rep = ""
Set fso = CreateObject("Scripting.FileSystemObject")
tabrep = Split(repertoire, "\")
For i = 1 To UBound(tabrep)
rep = rep & "\" & tabrep(i)
If Dir(rep, vbDirectory) = "" Then
nbdir = nbdir + 1
fso.CreateFolder rep
End If
Next i
End Subla recopie d'un fichier
Sub recopie(nomFichierSource As String, nomFichierDest As String)
Dim fso As Object
Dim nomFichierDestComplet As String
Dim nomRepertoire As String
Set fso = CreateObject("Scripting.FileSystemObject")
nomFichierDestComplet = Range("sauvegarde").Value & nomFichierDest
If Dir(nomFichierDestComplet, vbDirectory) = "" Then
nomRepertoire = Mid(nomFichierDestComplet, 1, Len(nomFichierDestComplet) - 1 - Len(Split(nomFichierDestComplet, "\")(UBound(Split(nomFichierDestComplet, "\")))))
creation nomRepertoire
End If
fso.CopyFile Range("source").Value & nomFichierSource, nomFichierDestComplet
End Subsi besoin, la lecture récursive des fichiers d'un dossier et d ses sous-dossiers
Sub ListeFichiers(repertoire As String, onglet As String, longRacine As Integer)
Dim fso, SourceFolder, SubFolder, fichier, ws As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = fso.GetFolder(repertoire)
Set ws = Sheets(onglet)
' boucle sur tous les fichiers du répertoire
For Each fichier In SourceFolder.Files
ws.Cells(k, 1).Value = Mid(repertoire, longRacine + 1) & "\" & fichier.Name
ws.Cells(k, 2).Value = FileDateTime(fichier)
k = k + 1
Next fichier
' appel récursif pour les sous-répertoires
For Each SubFolder In SourceFolder.subfolders
ListeFichiers SubFolder.Path, onglet, longRacine
Next SubFolder
End Subsi tu veux affiner, donne un bout de l'application excel telle que tu la voies et les fonctionnalités