Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Chemin d'accès et nom de fichier avec valeur de cellule

Leherle

XLDnaute Nouveau
Bonjour j'ai un probleme je voudrais pouvoir enregister des facture clients avec leur nom dans le chemin d'adresse et un numero de facture dans le nom du fichier et l'enregistrement doit etre fait au format PDF .
Le nom est en Z2 et le numéro en H2

j'ai donc le code suivant mais il mais au moment du lancement de la macro il m'indique une erreur de code :

Sub enregistrement()


Dim Nom As String
Nom = Range("Z2").Value
Num = Range("H2").Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"G:\Marque\Facture\Facture saison 2018-2019\Ville\& Nom & " \ " & Num & .pdf", Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub

merci d'avance de votre aide
cordialement
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Il manque des délimiteurs de constantes String
Essayez comme ça :
VB:
Sub Enregistrement()
Dim Nom As String, Num As String, ChNomF As String
Nom = Trim$(Range("Z2").Value)
Num = Trim$(Range("H2").Value)
ChNomF = "G:\Marque\Facture\Facture saison 2018-2019\Ville\" & Nom & "\" & Num & ".pdf"
On Error Resume Next
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ChNomF, Quality:=xlQualityStandard, _
   IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
If Err Then MsgBox "Err " & Err & " en tentant d'écrire :" & vbLf & ChNomF _
   & vbLf & Err.Description, vbCritical, "Enregistrement"
End Sub
 

Leherle

XLDnaute Nouveau
Merci de votre réponse mais avec ce nouveaux code j'ai une fenêtre d'erreur me disant qu'une erreur se produit lors de l'enregistrement ou que le document est déjà ouvert .
merci de cotre réponse

enoncer de l'erreur : erreur 1004 en tentant d'ecrire : le code d'acces
 

Dranreb

XLDnaute Barbatruc
Mettez le message en entier sinon je ne peux pas mieux deviner que vous ce qui ne va pas.
À priori fermez AccrobatReader avant de l'exécuter.
Essayez aussi comme ça :
VB:
Sub Enregistrement()
Const NomDoss = "G:\Marque\Facture\Facture saison 2018-2019\Ville"
Dim Nom As String, Num As String, NomFic As String
Nom = Trim$(Range("Z2").Value)
Num = Trim$(Range("H2").Value)
On Error Resume Next
ChDrive NomDoss: ChDir NomDoss
If Err Then MsgBox "Err " & Err & " en tentant d'accéder à :" & vbLf & NomDoss _
  & vbLf & Err.Description, vbCritical, "Enregistrement": Exit Sub
ChDir Nom
If Err Then
  If MsgBox("Err " & Err & " en tentant d'accéder à """ & Nom & """ sur :" & vbLf & CurDir _
  & vbLf & Err.Description & vbLf & vbLf & "Voulez-vous tenter de créer ce dossier ?", _
  vbExclamation + vbYesNo, "Enregistrement") = vbNo Then Exit Sub
  Err.Clear: MkDir Nom
  If Err Then MsgBox "Err " & Err & " en tentant de créer """ & Nom & """ sur :" & vbLf & CurDir _
  & vbLf & Err.Description, vbCritical, "Enregistrement": Exit Sub
  Err.Clear: ChDir Nom
  If Err Then MsgBox "Err " & Err & " en tentant d'accéder à """ & Nom & """ sur :" & vbLf & CurDir _
  & vbLf & Err.Description, vbCritical, "Enregistrement": Exit Sub
  Err.Clear: End If
NomFic = Num & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NomFic, Quality:=xlQualityStandard, _
  IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
If Err Then MsgBox "Err " & Err & " en tentant d'écrire """ & NomFic & """ sur :" & vbLf & CurDir _
  & vbLf & Err.Description, vbCritical, "Enregistrement"
End Sub
 
Dernière édition:

Leherle

XLDnaute Nouveau
Merci beaucoup avec le nouveaux code cela fonction il y a t'il juste possibilité de ne pas avoir la pop up qui demande si l'on veut bien créé le nouveaux dossier ?
sinon pas de probleme cela est vraiment parfait vous m'avez fait gagner énormément de temps merci beaucoup a vous
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…