Problème d’automatisation de copie de dossier
FireZone71
-
jjsteing Messages postés 1803 Statut Contributeur -
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.
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:
- Problème d’automatisation de copie de dossier
- Dossier appdata - Guide
- Copie cachée - Guide
- Impossible de supprimer un dossier - Guide
- Super copie - Télécharger - Gestion de fichiers
- Mettre un mot de passe sur un dossier - Guide
5 réponses
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 !
Si certains on la solution ... Merci beaucoup !
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 :)
.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 :)
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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