Problème d’automatisation de copie de dossier

FireZone71 -  
jjsteing Messages postés 1803 Statut Contributeur -
Bonjour à tous,

Etant débutant en programmation de macro, je rencontre quelques difficultés en essayant d’automatisant au maximum. La difficulté réside dans le fait que mes fichiers seront distribués par la suite sur d’autres postes, donc que le chemin des dossiers est différent.

J’ai un dossier principal appelé / Veille/ dans lequel se trouve plusieurs sous-dossiers :
- /Générateur/ à l’intérieur duquel on retrouve un autre sous-dossier /Modèle/
- /Années/ à l’intérieur duquel se trouvera les sous dossiers modèles qui auront copier et renommé par ma macro.

Je souhaiterais donc obtenir un macro qui lorsque j’appuie sur mon bouton de commande après avoir renseigné le nom du dossier que je souhaite créer dans une cellule A1, effectue les taches suivantes :
- recherche le dossier /modèle/
- le copie dans le dossier /année/
- le renomme du nom inscrit en A1

Tout cela en prenant en compte le fait que le chemin pour accéder aux dossiers peut être différent d’un post à l’autre.

J’espère que certains aurons la solution à mon problème.

Merci d’avance

Un débutant en détresse.
A voir également:

5 réponses

jules
 
Et il est où ton code ?!!!!!!!!
0
FireZone71
 
Pour le moment j'ai aucun code, j'ai juste une phrase que je fais afficher sur ma page demandant de copier le dossier modèle et de le renommer, et seulement après des macro interviennent au niveau des fichiers du dossier copier, sauf que la phase de copie, de renomme et d'ouverture se fait manuellement et j'aimerais l'automatiser, sauf que je sais pas faire ...

Si certains on la solution ... Merci beaucoup !
0
jjsteing Messages postés 1803 Statut Contributeur 181
 
With Application.FileSearch
.NewSearch
.LookIn = "C:\"
.SearchSubFolders = False
.FileName = "Monfichier.ext"
.MatchTextExactly = True
'.FileType = 1
If .Execute() > 0 Then
'si il trouve le fichier
Else
'si il trouve pas
end if

Set fs = CreateObject("Scripting.FileSystemObject")
a = fs.copyfile(FichierSrc, FichierDest) 'copy de fichier
a = fs.movefile(FichierSrc, FichierDest) 'deplace de fichier
a = fs.deletefile(FichierSrc, True) ' suppr fichier

j espere que ca t aidera :)
0
FireZone71
 
Merci a toi, mais tes lignes de code ne marche pas pour rechercher un dossier ...
Car le problème c'est que l'ensembles des dossiers créés contiennent les mêmes fichiers, autrement dit, il y a autant de fichier portant le même nom qu'il y a de dossier ...

Si quelqu'un à une petite idée de l amanière de procéder ...

Encore merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jjsteing Messages postés 1803 Statut Contributeur 181
 
alors c'est ca qu'il te faut :

MyPath = "c:\" ' Définit le chemin d'accès.
MyName = Dir(MyPath, vbDirectory) ' Extrait la première entrée.
Do While MyName <> "" ' Commence la boucle.
' Ignore le dossier courant et le dossier
' contenant le dossier courant.
If MyName <> "." And MyName <> ".." Then
' Utilise une comparaison au niveau du bit pour
' vérifier que MyName est un dossier.
If (GetAttr(MyPath & MyName) _
And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Affiche l'entrée uniquement si elle
End If ' représente un dossier.
End If
MyName = Dir ' Extrait l'entrée suivante.
Loop
0