Cloner des fichiers divers

Chris57

XLDnaute Occasionnel
Bonjour à tous,

je voudrais créer une macro permettant de copier des fichiers en tout genre (xls, doc, pdf, jpg etc...)

Il faudrai que l'utilisateur puisse sélectionner les fichiers à cloner, et que ceux-ci soient listés dans un classeur, avec leur chemin.
Les fichiers en question se trouvent dans un dossier "mère" (L:\UP78\) contenant de nombreux sous dossiers.

Ensuite avec une seconde macro les fichiers sont copiés vers un autre dossier "mère" qui porte le même nom mais dans sur le disque dur C (C:\UP78\)
Mais il faudrait que les sous-dossiers soient recréés.

Par exemple, si un pdf se trouve dans L:\UP78\Doc Technique\, il faudrait qu'il soit copier dans C:\UP78\Doc Technique\. Si le sous-dossier n'existe pas, il fuudra qu'il soit automatiquement créé.


J'ai déjà la première partie de la macro :
Code:
' Comptage des fichiers en D5
        nbreFICHIERS = Sheets("Fichiers à Cloner").[B510].End(xlUp).Row - 9
        If nbreFICHIERS < 1 Then nbreFICHIERS = 0
        [D5] = nbreFICHIERS

' Ouverture boite de dialogue
        ChDir Sheets("Fichiers à Cloner").[D3].Value
        stFile = Application.GetOpenFilename

' Inscription du nom + chemin du fichier sélectionné
        If stFile <> False Then [B10].Offset(nbreFICHIERS, 0) = stFile

' Re-comptage des fichiers
        nbreFICHIERS = Sheets("Fichiers à Cloner").[B510].End(xlUp).Row - 9
        If nbreFICHIERS < 1 Then nbreFICHIERS = 0
        [D5] = nbreFICHIERS

Donc je peux déjà lister les fichiers que l'utilisateur veux cloner.
Mais j'aimerai aussi séparer nom et chemin si possible.


Merci d'avance
 

Chris57

XLDnaute Occasionnel
Re : Cloner des fichiers divers

Bon j'ai trouvé quelques trucs :
Code:
' Comptage des fichiers en C5
        nbreFICHIERS = Sheets("Fichiers à Cloner").[B510].End(xlUp).Row - 9
        If nbreFICHIERS < 1 Then nbreFICHIERS = 0
        [C5] = nbreFICHIERS

' Ouverture boite de dialogue
        ChDir Sheets("Fichiers à Cloner").[C3].Value
        CHEMINetFICHIER = Application.GetOpenFilename
        
test:
' Inscription du nom + chemin du fichier sélectionné
        If CHEMINetFICHIER <> False Then
                ' Extraction du chemin
                CHEMINetFICHIERinvers = StrReverse(CHEMINetFICHIER)
                POS1 = InStr(CHEMINetFICHIERinvers, "\")                  ' Position du \ en partant de la fin
                CHEMINseul = StrReverse(Mid(CHEMINetFICHIERinvers, POS1))
        
                ' Extraction du nom du fichier
                nomFICHIER = Right(CHEMINetFICHIER, POS1 - 1)
            
        
            [B10].Offset(nbreFICHIERS, 0) = nomFICHIER
            [C10].Offset(nbreFICHIERS, 0) = CHEMINseul
            [E10].Offset(nbreFICHIERS, 0) = CHEMINetFICHIER
            [F10].Offset(nbreFICHIERS, 0) = POS1
        End If


avec ça j'arrive à extraire les noms de fichier et les chemins seuls.

Par contre j'arrive pas à remplacer les L:\ par des C:\
La fonction replace ne veut pas marcher...
 

Pièces jointes

  • Clonage Sur Disque C.zip
    30.8 KB · Affichages: 16
  • Clonage Sur Disque C.zip
    30.8 KB · Affichages: 18
  • Clonage Sur Disque C.zip
    30.8 KB · Affichages: 15

Discussions similaires

Statistiques des forums

Discussions
312 430
Messages
2 088 359
Membres
103 827
dernier inscrit
TiphaineBnd