XL 2013 copier un dossier sous un autre nom

Jacques25

XLDnaute Occasionnel
Bonjour à tous,

J'ai pas mal chercher sur le net et sur le forum et je ne trouve pas ce que je souhaite faire. J'espère que vous pourrez m'aider.

J'ai un dossier type s'appellant "Vierge" contenant 25 sous-dossiers "dossier 1" "dossier2" "dossier3" etc...

Dans mon code je voudrais copier ce dossier Vierge et le coller dans le même dossier sous un autre nom par exemple "client1"
J'ai trouvé des codes pour copier des fichiers les renommer ou tout ce qu'on veut mais pour les dossier je sèche.

Pouvez vous m'aider?

Merci d'avance de votre aide.
Cordialement.

Jack
 

Jacques25

XLDnaute Occasionnel
Rebonjour,

J'en profite pour essayer de comprendre ce que j'utilise, serais-ce possible de m'expliquer les 2 lignes suivantes :

t = Split(x, "\"): ReDim Preserve t(0 To UBound(t) - 1): xrep = Join(t, "\")

et

xcmd = "xcopy /E /Y " & x & " " & xrep & "\" & ynom surtout /E /Y je vois pas d'où ça sort ;-)

Merci d'avance

@ plus
Jack
 

Jacques25

XLDnaute Occasionnel
Bonjour à tous,

Je reviens vers vous en ayant trouvé quelques réponses sur le net :
Pour les néophytes comme moi (dans les grandes lignes) :

- au niveau du xcopy il y a plusieurs paramétrages différents, dans le cas présent /E signifie que l'on copie les répertoires et sous-répertoires y compris ceux qui sont vide et pour /Y ça supprime la demande de confirmation de remplacement de fichiers de destination existants.

- pour la ligne avec split on sépare le chemin C:\toto\tata\titi en tableau (avec séparateur \) : C: toto tata titi et on le redimensionne avec 1 colonne de moins ce qui nous donne C: toto tata et on joint le tout avec \ au final ce qui nous donne l'arborescence C:\toto\tata.

En revanche je bloque toujours sur mes problèmes d'espaces dans mes noms de répertoire. Si quelqu'un a une idée je reste preneur (ça m'éviterai de renommer 800 dossiers.

Bonne journée à tous

Jack
 

zebanx

XLDnaute Accro
Bonjour Jack, mapomme, le forum

Un zip qui contient un fichier me permettant de renommer des fichiers.
Dans le fichier excel ("renommer_fichier.xls"), la cellule I2 me permet de connaitre le nom du dossier de départ où se situe le fichier excel automatiquement (merci à JOB75 pour la formule).

Après, c'est une boucle qui vient changer le nom des fichiers et ça semble fonctionner (test sur les sous-répertoires que je migraient d'une colonne à l'autre au fil des lancements de la macro).
J'ai mis exprès des erreurs et la cellule en colonne "6" ne s'actualise pas, je sais donc qu'il y a un problème sur les 3 colonnes précédentes dans ce cas.
En colonne 5, le "x" permet de dire que le fichier est à renommer, sinon la boucle passe la ligne (sécurité si vous avez une large liste mais uniquement quelques fichiers à modifier).

En espérant que cela vous aide,
xl-ment

zebanx
 

Pièces jointes

  • test.zip
    822.5 KB · Affichages: 19

Jacques25

XLDnaute Occasionnel
Bonjour à tous,

Zebanx je n'ai pas encore regardé ton code mais les explications que tu en fait vont certainement me servir pour autre chose, je te recontacterai au besoin.
Concernant ma demande initiale, après moult recherche j'ai trouvé (sur info-3000.com) une solution simple pour copier un dossier même avec des espaces :

Sub CopieDossier()
Dim ynom, GestionFichier As New Scripting.FileSystemObject
ynom = InputBox("Nom du nouveau dossier ?")
GestionFichier.CopyFolder "C:\toto\tata\titi\A vierge", "C:\toto\tata\titi\" & ynom
Set GestionFichier = Nothing
End Sub

Ca nécessite de cocher dans VBA outils/référence : Microsoft Scripting runtime
Il y a énormément de chose sur ce site pour la manipulation des fichiers et dossiers et c'est très bien expliqué.

En attendant merci Mapomme pour ton aide, j'ai vu de nouvelles fonctions qui me serviront beaucoup à l'avenir maintenant que j'ai compris comment les utiliser. Merci Zebanx pour ton code que je vais découvrir.

Bonne journée à tous

@ plus
Jack
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Jacques25 :),

En revanche je bloque toujours sur mes problèmes d'espaces dans mes noms de répertoire. Si quelqu'un a une idée je reste preneur (ça m'éviterai de renommer 800 dossiers

Pas pu répondre avant. Un essai en entourant les noms par des guillemets. Voir v2...
 

Pièces jointes

  • Jacques25- Duplication Arborescence- v2.xlsm
    18.9 KB · Affichages: 19

MJ13

XLDnaute Barbatruc
Bonjour à tous


Même si je n'ai pas bien compris la demande. J'avais fait une appli utilisant robocopy qui pourrait peut-être faire l'affaire.

Il suffit de créer un dossier (ex: Copie de dossier sur le C:\ avec des sous-dossiers) puis de choisir les cellules avec Nom1 et Nom2 puis lancer la macro Robocopy selection.
 

Pièces jointes

  • My_Sauvegardes_MJ_V6.xlsm
    85.2 KB · Affichages: 28

Jacques25

XLDnaute Occasionnel
Bonjour Mapomme, MJ13,

Désolé j'avais pas vu vos réponses.
Ma pomme, ça marche nickel merci d'avoir encore pris un peu de temps ;-)
MJ13, ton code a l'air bien compliqué pour l'utilisation que je vais en avoir et surtout pour l'intégrer dans mes autres codes. En revanche j'essayerai de comprendre ce que tu as fait, c'est toujours bon à prendre.

Merci à vous 2
Bonne journée

@ plus
Jack
 

MJ13

XLDnaute Barbatruc
Re

@Jacques: Personnellement je n'était pas sur de bien comprendre ton problème. Mais je me suis dit que mon utilitaire aurait pu servir, vu que ajouter une liste de nom à la place de Nom1 , Nom2 ne me paraît pas très sorcier si tu as déjà une liste de noms sur Excel.

Par contre son utilité est surtout d'avoir des dossiers toujours mis à jour entre 2 lecteurs comme entre un dossier sur ton C:\ et une clé USB pour faire des sauvegardes rapidement.

J'arrive même maintenant à faire des sauvegardes à partir de OneDive. :)
 

Discussions similaires

Réponses
11
Affichages
206