Code VBA renommer répertoire avec valeur champ formulaire [Résolu/Fermé]

Signaler
Messages postés
340
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
-
Messages postés
340
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
-
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

Messages postés
11776
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2020
674
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
Messages postés
340
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
66
Merci

Je vais essayer lundi et vous dirai le résultat

Cordialemen

Messages postés
340
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
66
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.
Messages postés
11776
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2020
674
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?
Messages postés
340
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
66
Bonsoir

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

Merci encore pour l'aide.
Messages postés
340
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
66
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.


--
Messages postés
340
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
66
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]





--
Messages postés
340
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
66 >
Messages postés
340
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016

Le 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
`