Code VBA renommer répertoire avec valeur champ formulaire

Résolu/Fermé
doublem93 Messages postés 337 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 20 novembre 2016 - Modifié par doublem93 le 7/11/2016 à 20:03
doublem93 Messages postés 337 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 20 novembre 2016 - 20 nov. 2016 à 21:26
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
A voir également:

5 réponses

yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
10 nov. 2016 à 20:20
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
doublem93 Messages postés 337 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 20 novembre 2016 72
11 nov. 2016 à 13:21
Merci

Je vais essayer lundi et vous dirai le résultat

Cordialemen

-1
doublem93 Messages postés 337 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 20 novembre 2016 72
14 nov. 2016 à 14:07
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
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
14 nov. 2016 à 18:20
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
doublem93 Messages postés 337 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 20 novembre 2016 72
14 nov. 2016 à 20:04
Bonsoir

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

Merci encore pour l'aide.
-1

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

Posez votre question
doublem93 Messages postés 337 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 20 novembre 2016 72
19 nov. 2016 à 11:33
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
doublem93 Messages postés 337 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 20 novembre 2016 72
19 nov. 2016 à 19:44
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
doublem93 Messages postés 337 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 20 novembre 2016 72 > doublem93 Messages postés 337 Date d'inscription samedi 16 août 2008 Statut Membre Dernière intervention 20 novembre 2016
20 nov. 2016 à 21:26
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
`
0