Macro enregistrer sous... dans dossier spécifique

Pierl

XLDnaute Nouveau
Bonjour,
J'ai créé une macro permettant d'enregistrer une fiche de renseignements dans un dossier client à l'aide d'un bouton prévu à cet effet.
Ma macro va sauvegarder automatiquement mon document dans un dossier portant le numéro du client et son nom, contenus tous deux dans la fiche de renseignements. Cela fonctionne très bien tant que le nom est écrit exactement de la même manière.
C'est pourquoi je voudrais que la recherche du dossier s'opère uniquement sur le numéro à 4 chiffres du client, sans prendre en compte la manière dont le nom est écrit (ex. 1234 - Jambois Sarl: la recherche doit s'effectuer sur le numéro 1234).
Si quelqu'un peut m'aider. ..
D'avance merci;-)
 

Pierl

XLDnaute Nouveau
Re : Macro enregistrer sous... dans dossier spécifique

Bonjour Gilbert,
Merci pour la réponse; j'ai essayé sans succès d'ajouter une étoile pour remplacer la chaîne de caractère correspondant au nom du client dans la macro, mais cela ne fonctionne pas;
Si cela peut aider à la compréhension, voila la macro que j'ai créé avec de l'aide car je n'ai qu'une maîtrise limitée des macros; J'envoie la version qui fonctionne avec recherche du numéro et du nom exact du client :

Sub Save_DPV()
'
' Save_DPV Macro
'

ActiveSheet.Unprotect



Dim Path As String
Dim File As String

File = "C:\Users\Pierre\Documents\Mes propositions\Dossiers clients"
Path = "C:\Users\Pierre\Documents\Mes propositions\Dossiers clients" & "\" & Range("H4").Value & " - " & Range("D8").Value


'Teste si le repertoire existe sinon creation
If Len(Dir(Path, vbDirectory)) = 0 Then
MkDir (File & "\" & Range("H4").Value & " - " & Range("D8").Value)

End If

'sauvegarde du fichier Excel
ActiveWorkbook.SaveAs Filename:=Path & "\" & "DPV" & " " & Range("D8").Value & "_" & Range("H4").Value & " - " & Format(Date, "dd-mm-yy") & ".xlsm"
ActiveSheet.Protect

End Sub

Je peux aussi envoyer le fichier si nécessaire

d'avance merci!
 

Pierl

XLDnaute Nouveau
Re : Macro enregistrer sous... dans dossier spécifique

Bonjour,
Oui bien sûr mais c'est compliqué car la liste contient plus de 8000 clients. et on ne maîtrise pas la manière dont l'orthographe est saisie dans la fiche. Seul le numéro a 4 chiffres du client est fiable.
Je me disais qu'il devait bien y avoir un moyen pour faire la recherche sur les seuls 4 chiffres du numéro est d'aller enregistrer le document dans le dossier commençant par ces 4 chiffres... ;-)
 

gilbert_RGI

XLDnaute Barbatruc
Re : Macro enregistrer sous... dans dossier spécifique

il est où le num client ?

et pourquoi ne pas employer les boites de dialogue prévues

ex : Application.Dialogs(xlDialogSaveAs).Show ' pour enregistrer sous

:eek:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro enregistrer sous... dans dossier spécifique

Bonjour à tous

Pierl [highlight][Bienvenue sur le forum][/code]
Juste une suggestion de simplification d'écriture en ce dimanche nuageux.
VB:
Const Repert As String = "C:\Users\Pierre\Documents\Mes propositions\Dossiers clients\"
Sub Save_DPV()
Dim SousRep$, sPath$
ActiveSheet.Unprotect
SousRep = "DPV" & Range("H4").Text & "-" & Range("D8").Text
sPath = Repert & SousRep
'Teste si le repertoire existe sinon creation
If Len(Dir(sPath, vbDirectory)) = 0 Then
MkDir sPath
End If
'sauvegarde du fichier Excel
ActiveWorkbook.SaveAs sPath & "\" & "DPV " & Format(Date, "ddmmyy"".xlsm")
ActiveSheet.Protect
End Sub
PS: test OK sur mon PC
 
Dernière édition:

Pierl

XLDnaute Nouveau
Re : Macro enregistrer sous... dans dossier spécifique

Bonjour Gilbert,

H4= numéro du client
D8= nom du client
peut-on insérer dans la macro un code qui dirait "enregistrer le document dans le dossier dont le numéro commence par: 5678" au lieu de : "5678 - Jambois Sarl"? en fait, c'est ça ma question...;-)
Voulez-vous que je vous envoie le dossier?
 

Pierl

XLDnaute Nouveau
Re : Macro enregistrer sous... dans dossier spécifique

Bonjour
J'ai bien essayé de copier votre macro dans mon fichier; cela fonctionne en effet mais le document ne va pas s'enregistrer dans le dossier attendu (C:\Users\Pierre\Documents\Mes propositions\Dossiers clients\5678 - Jambois Sarl); C'est bien ça qui m'ennuie...

Ne pourrait insérer dans la macro un code qui dirait "enregistrer le document dans le dossier dont le numéro commence par: 5678" au lieu de : "5678 - Jambois Sarl"? en fait, c'est ça ma question...;-)

Merci de l'aide:)
 

FROLLINDE

XLDnaute Occasionnel
Re : Macro enregistrer sous... dans dossier spécifique

Une proposition.. pour récupérer tous les répertoire existants et donc les num client et nom client et utiliser cela comme référence pour gérer les bon noms de clients existant.
Code:
Sub listrep()

Dim Dossier As Object, Fichier As Object
Dim Chemin As String
Dim i As Long
i = 1
' Onglet "lesclients" a créer dans le classeur pour récupérer la liste des repertoires clients
Sheets("lesclients").Select
' effacer donnée précédentes
Range("A1:F65000").Select
Selection.ClearContents
' le repertoire racine ou faire la recherche des sous rep.
Chemin = "C:\Users\Pierre\Documents\Mes propositions\Dossiers clients"

'Définition de la variable
Set Dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
' Boucle sur les fichiers
For Each rep In Dossier.SubFolders

' en principe la strucuture des sous rep est constante "xxxx - nom du client"
' Num client les 4 premier carractere
' le nom du clientà partir du 8em car..

i = i + 1
Cells(i, 1) = Mid(rep, Len(Chemin) + 2, 4)
Cells(i, 2) = Mid(rep, Len(Chemin) + 7, 50)
Cells(i, 3) = rep  ' Nom du dossier
Next

' Utiliser ensuite la colonne A de l'onglet pour avoir le num de client et donc le nom du client dans une liste de choix
' et ensuite utiliser un simple recherchev pour récupérer le bon nom de client et le bon répertoire.

End Sub
 

Discussions similaires

Réponses
3
Affichages
291

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16