Code VBA renommer répertoire avec valeur champ formulaire

Résolu
Bonjour,

J'aurais besoin d'aide pour ma base access car malgré des recherches je ne trouve pas la solution...

Mon problème est le suivant :
Je souhaite en cliquant sur un bouton dans un formulaire, copier et renommer un répertoire avec la valeur d'un champ.

Pour contourner le problème j'ai trouvé le code qui me permet de copier mon répertoire modèle et de le nommer "New" mais je n'arrive pas à lui donner le nom en fonction du champ [NomRep].

Sub CopyFolder(folderpath As String, destfolderpath As String)
    Dim fso As Object
    Dim fld As Object
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set fld = fso.GetFolder(folderpath)
        fld.Copy destfolderpath
End Sub

Private Sub Commande50_Click()
   Call CopyFolder("D:\Dossiers\Dossiermodele", "D:\Dossiers\New")
End Sub


J'aurais donc grand besoin de vos lumières si vous avez le temps de vous y pencher...

Je vous remercie d'avance pour votre aide

Cordialement

5 réponses

  1. Contributeur Ambassadeur
    Tout cela se trouve dans un formulaire?
    Si tu parviens à récupérer la valeur de ton champ [NomRep] et à le mettre dans la variable nouveaunom, tu peux faire :
    Private Sub Commande50_Click()
       dim nouveaumon as string
       nouveaunom = "" ' à toi de trouver
       Call CopyFolder("D:\Dossiers\Dossiermodele", "D:\Dossiers\"+nouveaunom)
    End Sub
    0
    1. Merci

      Je vais essayer lundi et vous dirai le résultat

      Cordialemen

      -1
      1. Bonjour,

        J'ai essayé la solution proposée et cela ne fonctionne pas. On se retrouve avec une erreur 76 et surlignage de la ligne fld.copy...

        Merci tout de même.
        -1
        1. Contributeur Ambassadeur
          Quand la ligne fld.copy est surlignée, si tu déplaces le curseur sur "destfolderpath", la valuer de "destfolderpath" va s'afficher. Quelle est cette valeur?
          0
      2. Bonsoir

        Je regarde cela dès mon retour au bureau qui n'aura lieu que mercredi ou jeudi.

        Merci encore pour l'aide.
        -1
        1. Bonjour,

          je viens de faire l'essai de nouveau et cela fonctionne à partir du moment où le champ nom de dossier n'est pas vide.

          Merci pour ton aide.

          --
          -1
          1. J'explique que j'ai remplacé [NomRep] par [IdDossier] & " - " & [NomDossier].

            C'est deux champs présents dans le formulaire et qui sont les informations présentes dans le champ [NomRep]

            --
            0
          2. @doublem93Le code complet est le suivant :


            Sub CopyFolder(folderpath As String, destfolderpath As String)
            Dim fso As Object
            Dim fld As Object
            Set fso = CreateObject("Scripting.FileSystemObject")
            Set fld = fso.GetFolder(folderpath)
            fld.Copy destfolderpath
            End Sub

            Private Sub Commande50_Click()
            dim nouveaumon as string
            nouveaunom = Me.[IdDossier] & " - " & Me.[NomDossier]
            Call CopyFolder("D:\Dossiers\Dossiermodele", "D:\Dossiers\"+nouveaunom)
            End Sub
            `
            0