Copie de fichiers dans un repertoire qui viens d'etre créer

coxsurf

XLDnaute Nouveau
bonjour,
j'ai une liste de reference
exemple:
liste1
liste2
liste3
d'apres cette liste grace a une macro que j'ai trouvé sur ce forum
je crée des repertoires qui portent le meme nom dans c:\essai
c:\essai\liste1
c:\essai\liste2
c:\essai\liste3
le code pour la 1er partie
Sub nouveau_dossier()
Code:
Dim Cell As Range, Chemin As String
Chemin = "C:\essai\"
On Error Resume Next

For Each Cell In Range("A2:A" & Range("A65536").End(xlUp).Row)
'remplace les a par la colonne consernée
If Cell <> "" Then MkDir Chemin & Cell
ChDir Chemin & Cell.Value

Next
End Sub

et dans ces repertoires ci dessus j'aimerais que la macro me copie des repertoires et des fichiers type qui sont dans c:\type
sachant que je rajoute des lignes regulierement dans mon fichier excel
donc il faut que les repertoires type ne soit copiés que avec les nouveaux repertoires crées
si quelqu'un peut me filer un coup de main
 

tototiti2008

XLDnaute Barbatruc
Re : Copie de fichiers dans un repertoire qui viens d'etre créer

Bonjour coxsurf,

si j'ai bien compris, il ne faut traiter queles nouveaux éléments. quelque chose permet de les identifier, ou bien faut-il regarder si on a ou non créé un dossier cette fois-ci ?
 

coxsurf

XLDnaute Nouveau
Re : Copie de fichiers dans un repertoire qui viens d'etre créer

les nouveaux elements, ils sont a la suite
dans la partie pour creer le code c'est le on error qui permet de ne pas essayer de recréer les dossiers
je pense qu'il faudrait memoriser les noms des nouveaux dossiers crées pour copier les repertoires type seulement dans la liste des noms memorisé, :rolleyes:
ca c'est du defi
realisable?:confused:
pour les differencier ,une solution serait de changer de couleur automatiquement biensur, les cellules dont le repertoire a ete crée
du coup ca permettrait de selectionner les nouveaux par la couleur de la police ou de la cellule
sur le papier ca me parait realisable, reste a le transcrire:D
 

tototiti2008

XLDnaute Barbatruc
Re : Copie de fichiers dans un repertoire qui viens d'etre créer

voilà ce que je te propose :

Code:
Dim Cell As Range, Chemin As String, Liste() as String
Chemin = "C:\essai\"
On Error Goto FinBoucle
Redim Liste(1 to 1)
For Each Cell In Range("A2:A" & Range("A65536").End(xlUp).Row)
'remplace les a par la colonne consernée
If Cell <> "" Then 
MkDir Chemin & Cell
Liste(ubound(liste)) = Chemin & Cell
redim preserve Liste(1 to ubound(liste)+1) 
end if
ChDir Chemin & Cell.Value
FinBoucle:
Next
End Sub

le tableau Liste devrait contenir les dossiers créés

maintenant, on peut envisager de faire la copie des fichiers tout de suite mais il faut que tu précises un peu quels fichiers copier, dans quelle condition, c'est pas trés clair pour moi...
 

coxsurf

XLDnaute Nouveau
Re : Copie de fichiers dans un repertoire qui viens d'etre créer

merci
je pige pas ou je doit mettre les fichiers ou comment creer la liste
le tableau liste c'est sur un autre onglet? ou sur le cote
ou dans un fichier?

les fichiers et repertoires sont dans un repertoire c:\type
il y a des fichiers word excel autocad
4 fichiers et 13 repertoires
l'ideal c'est de copier l'integralité des fichiers et repertoires
comme ca , je peux en rajouter dans le repertoire type
 

tototiti2008

XLDnaute Barbatruc
Re : Copie de fichiers dans un repertoire qui viens d'etre créer

le tableau Liste est un tableau VBA, il n'est visible nulle part, il n'existe qu'en mémoire pendant l'execution de la macro

donc dans c:\type tu as des fichiers et des répertoires. et tu veux copier l'intégralité des fichiers et des répertoires dans chaque dossier créé ? toujours pas clair pour moi...
 

tototiti2008

XLDnaute Barbatruc
Re : Copie de fichiers dans un repertoire qui viens d'etre créer

ok, ça doit donner ça :

Code:
Dim Cell As Range, Chemin As String, FS
Set FS= CreateObject("Scripting.FileSystemObject")
Chemin = "C:\essai\"
On Error Goto FinBoucle
Redim Liste(1 to 1)
For Each Cell In Range("A2:A" & Range("A65536").End(xlUp).Row)
'remplace les a par la colonne consernée
If Cell <> "" Then 
MkDir Chemin & Cell
FS.CopyFolder "C:\type", chemin & cell.value
end if
ChDir Chemin & Cell.Value
FinBoucle:
Next
End Sub
 

bouley

XLDnaute Nouveau
Re : Copie de fichiers dans un repertoire qui viens d'etre créer

bonjour,
pour que le filesystemobject fonctionne il faut faire référence à
Microsoft Scripting Runtime
via le menu outils---références--- et on coche Microsoft Scripting Runtime
( scrrun.dll)

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16