AugusteP
XLDnaute Nouveau
Bonjour,
J'essai de créer un code VBA me permettant d'obtenir pour chaque utilisateur le même chemin dossier après enregistrement.
Le dossier où est enregistrée l'application sera enregistré sur le bureau de chaque ordi. De plus, dans ce dossier il y aura un sous-dossier appelé commande client. Ce que je cherche à faire c'est créer un chemin dossier universel utilisable par tout le monde. Pour le moment cela fonctionne mais avec un chemin propre à mon ordi.
Merci me m'apporter votre aide
Ci-dessous mes lignes de code
Cordialement
Private Sub EnregistrementBCde_Click()
'Déclaration des variables
Dim CheminDossier As String
Dim CheminsousDossier As String
Dim Commande As String
Dim Li As Byte
On Error GoTo 1
'Nom de dossier
CheminDossier = "C:\Users\beaud\OneDrive\Bureau\Application en cours de modif\Commande client\" '.................Chemin pour création du dossier
CheminsousDossier = CheminDossier & Me.LbNomClient & "\" '.....nom du sous dossier
Call test_repertoire(CheminsousDossier) '....créer un sous-dossier client s'il n'existe pas
Commande = Me.LbNomClient & " Commande client N° " & Me.Txtnumcde & " du " & Format(Date, "dd-mm-yyyy") & ".pdf" '...............Références de la commande à sauvegarder
If Me.LbNomClient = "" Then
Me.LbNomClient.SetFocus
Exit Sub
End If
Call test_repertoire(CheminDossier) '...................................................................vers procédure Test_repertoire (si le dossier n'existe pas il est créé)
'Enregistrement au format PDF
Application.ScreenUpdating = False '....................................................................désactivation de la mise à jour écran
Sheets("Cde client").ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminsousDossier & Commande, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, OpenAfterPublish:=False '................................sauvegarde du fichier au format pdf
Application.ScreenUpdating = True '.....................................................................réactivation de l'écran
Exit Sub
'Le traitement de l'erreur se p1ace en dessous d'un exit sub juste avant le end sub
1:
MsgBox "Erreur de traitement, sortie de formulaire"
Application.ScreenUpdating = True
End Sub
Sub test_repertoire(CheminDossier As String)
'
'*************************************************************************************
' fonctionne en lien avec la procédure Private Sub EnregistrementBCde_Click() *
'*************************************************************************************
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject") '................instanciation de la variable fs
If fs.FolderExists(CheminDossier) Then '.............................le repertoire existe donc rien à faire
Else: fs.CreateFolder CheminDossier '...................................le repertoire n'existe pas donc on le créait
End If
Set fs = Nothing '...................................................vide l'instanciation fs
End Sub
J'essai de créer un code VBA me permettant d'obtenir pour chaque utilisateur le même chemin dossier après enregistrement.
Le dossier où est enregistrée l'application sera enregistré sur le bureau de chaque ordi. De plus, dans ce dossier il y aura un sous-dossier appelé commande client. Ce que je cherche à faire c'est créer un chemin dossier universel utilisable par tout le monde. Pour le moment cela fonctionne mais avec un chemin propre à mon ordi.
Merci me m'apporter votre aide
Ci-dessous mes lignes de code
Cordialement
Private Sub EnregistrementBCde_Click()
'Déclaration des variables
Dim CheminDossier As String
Dim CheminsousDossier As String
Dim Commande As String
Dim Li As Byte
On Error GoTo 1
'Nom de dossier
CheminDossier = "C:\Users\beaud\OneDrive\Bureau\Application en cours de modif\Commande client\" '.................Chemin pour création du dossier
CheminsousDossier = CheminDossier & Me.LbNomClient & "\" '.....nom du sous dossier
Call test_repertoire(CheminsousDossier) '....créer un sous-dossier client s'il n'existe pas
Commande = Me.LbNomClient & " Commande client N° " & Me.Txtnumcde & " du " & Format(Date, "dd-mm-yyyy") & ".pdf" '...............Références de la commande à sauvegarder
If Me.LbNomClient = "" Then
Me.LbNomClient.SetFocus
Exit Sub
End If
Call test_repertoire(CheminDossier) '...................................................................vers procédure Test_repertoire (si le dossier n'existe pas il est créé)
'Enregistrement au format PDF
Application.ScreenUpdating = False '....................................................................désactivation de la mise à jour écran
Sheets("Cde client").ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminsousDossier & Commande, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, OpenAfterPublish:=False '................................sauvegarde du fichier au format pdf
Application.ScreenUpdating = True '.....................................................................réactivation de l'écran
Exit Sub
'Le traitement de l'erreur se p1ace en dessous d'un exit sub juste avant le end sub
1:
MsgBox "Erreur de traitement, sortie de formulaire"
Application.ScreenUpdating = True
End Sub
Sub test_repertoire(CheminDossier As String)
'
'*************************************************************************************
' fonctionne en lien avec la procédure Private Sub EnregistrementBCde_Click() *
'*************************************************************************************
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject") '................instanciation de la variable fs
If fs.FolderExists(CheminDossier) Then '.............................le repertoire existe donc rien à faire
Else: fs.CreateFolder CheminDossier '...................................le repertoire n'existe pas donc on le créait
End If
Set fs = Nothing '...................................................vide l'instanciation fs
End Sub