création répertoire avec copie de fichier

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

saintex95

XLDnaute Nouveau
Bonjour,

J'ai des fichiers dans un répertoire et à partir de ces noms de fichiers je veux créer un répertoire portant le nom de chaque fichier avec copie du fichier dans ce répertoire.

Je m'explique:

j'ai 415 fichiers de format PDF dans un répertoire.
Je veux créer 415 répertoires avec comme intitulé le nom de chaque fichier, donc 415 répertoires.
Je veux copier ces 415 fichiers dans chaque répertoire associé en fonction du nom.

Merci.
 
Re : création répertoire avec copie de fichier

Bonjour ,

le code devrait ressembler à ceci .

Attention , modifier Chemin et CheminCible selon votre configuration


Code:
Sub Déplace()
Dim Chemin As String, NomFichier As String
Dim CheminCible As String
Chemin = "c:\temp\"
CheminCible = "c:\temp\bis\"

NomFichier = Dir(Chemin & "*.pdf")
Do
ChDir (CheminCible)
MkDir (Replace(NomFichier, ".pdf", ""))
Name Chemin & NomFichier As CheminCible & Replace(NomFichier, ".pdf", "") & "\" & NomFichier
NomFichier = Dir
Loop Until NomFichier = ""
End Sub
 
Re : création répertoire avec copie de fichier

bonjour à tous,

salut à toi camarchepas !

@saintex95
excuses ma curiosité, mais pourquoi un répertoire pour un fichier et avec le même nom ?
pour la liste des fichiers eux mêmes ça ne va pas être marrant !?
 
Re : création répertoire avec copie de fichier

Bonjour tout le monde.

Eh ben non je ne construit pas des labyrinthe(s)

En fait je vais répondre à votre curiosité, je vous dois bien cela si la macro marche.

Je suis pilote d'ULM et j'utilise un Logiciel Aéronav Pro sur un Ipad.
Sur ce logiciel j'ai la possibilité d'afficher des cartes de terrain au format PDF à la seule condition qu'elle soit dans un répertoire portant le nom du terrain c'est à dire le nom du fichier(le fichier et le répertoire dans lequel se trouve le fichier doivent avoir le même nom)
Mais ces fichiers je les récupère par un programme sur un site officiel de la Direction de l’aviation civile régulièrement pour avoir les cartes à jour.
Et c'est là que j'ai 415 fichiers qui correspondent aux 415 cartes des terrains d'aviation de France.

Donc je dois transférer ces 415 fichiers dans 415 répertoires portant le nom du fichier lui même.

Voilà vous savez tout de mon problème.
 
Re : création répertoire avec copie de fichier

bonsoir à tous,

alors OK !
voir cette macro qui fonctionne pour l'avoir testée !
on error afin de poursuivre si le répertoire existe déjà !
(c'est le même principe que camarchepas avec qq petites différences)

Code:
Sub DeplaceFichiers()
Extention$ = "pdf"             '< extention sans le point
RepSource$ = "E:\EssaiSource\" '< ici l'emplacement de tout les pdf
RepDestin$ = "E:\EssaiDestin\" '< ici la destination où seront créés les rep et les fichiers déplacés

On Error Resume Next
Fich$ = Dir(RepSource$ & "*." & Extention$)
Do While Fich$ <> ""
 I = InStrRev(Fich$, ".")
 If I Then
    If LCase(Mid(Fich$, I + 1)) = LCase(Extention$) Then
       Rep$ = Left(Fich$, I - 1)
       NewRep$ = RepDestin$ & Rep$
       MkDir NewRep$
       Name RepSource$ & Fich$ As NewRep$ & "\" & Fich$
    End If
 End If
 Fich$ = Dir
Loop
End Sub
 
Dernière édition:
Re : création répertoire avec copie de fichier

bonsoir à tous,

Comme je suis un fan de Saint-Ex, j'ai regardé ce poste et j'ai pensé que saintex95 ne voulait pas déplacer ses fichiers mais voulait créer une nouvelle structure en gardant l'ancienne alors je lui propose cette macro qui copie les PDF dans la nouvelle structure. Si les cartes sont mises à jour elles sont ainsi transférées dans la nouvelle structure.

Code:
Sub ventile_copie() ' copie des pdf sur répertoires
Dim r_ori As String, fic As String
Dim r_cbl As String, rep As String, fs As Object
r_ori = "C:\chemin_origine\"    ' à modifier
r_cbl = "C:\chemin_cible\"      '     "
Set fs = CreateObject("Scripting.FileSystemObject")
fic = Dir(r_ori & "*.pdf")
On Error Resume Next    ' répertoires existant en mise à jour
While fic <> ""
    rep = Left(fic, Len(fic) - 4)
    MkDir r_cbl & rep
    Err.Clear
    fs.CopyFile r_ori & fic, r_cbl & rep & "\" & fic
    fic = Dir
Wend
End Sub
 
Re : création répertoire avec copie de fichier

re

bonjour gbinforme, peut être bien que copier !?
mais il parle de "... transférer ces 415 fichiers ..." !?

au cas où, idem en copier:

Code:
Sub CopierFichiers() ' copie fichiers en créant un répertoire à chacun
Extention$ = "pdf"             '< extention sans le point
RepSource$ = "E:\EssaiSource\" '< ici l'emplacement de tout les pdf
RepDestin$ = "E:\EssaiDestin\" '< ici la destination où seront créés les rep et les fichiers copiés
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Fich$ = Dir(RepSource$ & "*." & Extention$)
Do While Fich$ <> ""
 I = InStrRev(Fich$, ".")
 If I Then
    If LCase(Mid(Fich$, I + 1)) = LCase(Extention$) Then
       REP$ = Left(Fich$, I - 1)
       NewRep$ = RepDestin$ & REP$
       MkDir NewRep$
       FSO.CopyFile RepSource$ & Fich$, NewRep$ & "\" & Fich$
    End If
 End If
 Fich$ = Dir
Loop
Set FSO = Nothing
On Error GoTo 0: Err.Clear
End Sub
 
Dernière édition:
Re : création répertoire avec copie de fichier

Bonjour,

Étant débutant en macro excel je n'arrive pas à mettre en œuvre la macro(voir P.J.).

J'ai recopié dans microsoft visual basic le code et déboguer.

la commande débogage - > compile VBAProject m'envoie un message

erreur de compilation erreur de syntaxe
 

Pièces jointes

  • vac.jpg
    vac.jpg
    47 KB · Affichages: 40
Re : création répertoire avec copie de fichier

re

bizarre car il n'y a pas d'erreur dans le code !?

tu fais l'exécution sur la macro au pas à pas avec F8
et tu dis sur quelle ligne ça bloque !

EDIT:
erreur probable du chemin !?

remplaces C:\Utilisateurs...
par C:\Users\ ...
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
745
  • Question Question
Microsoft 365 Power Query
Réponses
7
Affichages
344
  • Question Question
Microsoft 365 Personal.xlsb
Réponses
4
Affichages
610
Retour