Problème d’automatisation de copie de dossier

FireZone71 -  
jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   -
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.
Configuration: Excel 2002

5 réponses

  1. 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
  2. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   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
  3. 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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   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