Code VBA renommer répertoire avec valeur champ formulaire

Résolu/Fermé
doublem93
Messages postés
336
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
336
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

5 réponses

yg_be
Messages postés
19275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2022
1 102
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
336
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
73
11 nov. 2016 à 13:21
Merci

Je vais essayer lundi et vous dirai le résultat

Cordialemen

-1
doublem93
Messages postés
336
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
73
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
19275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2022
1 102
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
336
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
73
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
336
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
73
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
336
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
73
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
336
Date d'inscription
samedi 16 août 2008
Statut
Membre
Dernière intervention
20 novembre 2016
73 > doublem93
Messages postés
336
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