Code VBA

Bonsoir,
je débute en codage VBA et aurait besoin d'un coup de main.
quelqu'un pourrait il m'aider pour créer un code afin de pouvoir imprimer une facture sur un classeur Excel 2007 dans un dossier dont le chemin est le suivant.
C:\Users\imesy\Documents\Dossier Factures

Sub EnregistreFacture()

'Déclaration des Variables
Dim NomDossier As String
Dim CheminDossier As String

 On Error GoTo 1

'nom Dossier
NomDossier = Application.InputBox("Dossier Enregistrement : ", "Dossier")
CheminDossier = "C:\Users\imesy\Documents\Dossier Factures \" & NomDossier & "\"

If NomDossier = "" Then Exit Sub

'Enregistrement au format PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
from:=1, to:=1, openafterpublish:=False

1
End Sub


J'ai essayé ce code, mais ça m'imprime la facture sous le n° O.PDF dans mes documents C:\.
j'aurais voulu qu'elle soit enregistrée dans le bon dossier et avec le bon n° de facture qui est dans la cas C8 de ma facture.
Merci à vous tous.

4 réponses

  1. Bonsoir

    Essaie :
     nomcomplet=nomdossier & range("C8") &".pdf"
     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
           nomcomplet, Quality:= _
            xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
            OpenAfterPublish:=False

    Cdlmnt
    Via
    1
    1. Merci, je vais essayer et te tiens au courant.
      0
    2. @IMESYSj'ai fait comme indiqué. Cela fonctionne mais j'ai un souci, la facture ne s'enregistre pas dans "Dossier Factures" mais dans mes Documents.
      le dossier de sauvegarde est "C:\Users\imesy\Documents\Dossier Factures \"
      Il manque quelque close à la commande dans le chemin dossier.
      Merci de ton aide.
      IMESYS
      0
    3. j'ai fait comme indiqué. Cela fonctionne mais j'ai un souci, la facture ne s'enregistre pas dans "Dossier Factures" mais dans mes Documents.
      le dossier de sauvegarde est "C:\Users\imesy\Documents\Dossier Factures \"
      Il manque quelque close à la commande dans le chemin dossier.
      Merci de ton aide.
      IMESYS
      Sub EnregistrementFactures()
      
      'Déclaration des Variables
      Dim NomDossier As String
      Dim CheminDossier As String
      
       On Error GoTo 1
      
      'nom Dossier
      NomDossier = Application.InputBox("Dossier Enregistrement : ", "Dossier")
      CheminDossier = " C:\Users\imesy\Documents\Dossier Factures\" & NomDossier & "\"
      
      If NomDossier = "" Then Exit Sub
      
      'Enregistrement au format PDF
      nomcomplet=nomdossier & range("C8") &".pdf"
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      nomcomplet, Quality:= _
      xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
      OpenAfterPublish:=False
      
      1
      End Sub
      0
  2. Oh oui; étourderie de ma part j'ai omis de réintégrer aussi le chemin
     nomcomplet=CheminDossier & NomDossier & range("C8") &".pdf"

    0
    1. Merci pour la réponse.
      Mais après modification, hélas je n'ai plus rien qui s'enregistre dans l'ordinateur.

      Je suis revenu à nomcomplet=NomDossier & range("C8") &".pdf" et j'ai essayé de mettre mon fichier excel sur le disque D:\ avec chemin dossier "D:\ Documents\Dossier Factures\"
      lorsque je veux sauvegarder la facture je retrouve mon PDF sur C:\ Documents.
      Je n'y comprends plus rien.
      0
  3. L'erreur provient sans doute de l'espace entre le " et C dans ta déclaration de CheminDossier (voir ton post n° 4)

    Essaie ainsi :
    Sub EnregistrementFactures()
    
    'Déclaration des Variables
    Dim NomDossier As String
    Dim CheminDossier As String
    
     On Error GoTo 1
    
    'nom Dossier
    NomDossier = InputBox("Dossier Enregistrement : ", "Dossier")
    CheminDossier = "C:\Users\imesy\Documents\Dossier Factures \" & NomDossier & "_" & Range("C8") & ".pdf"
    
    If NomDossier = "" Then Exit Sub
    
    'Enregistrement au format PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
           CheminDossier, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
           True
    Exit Sub
    1
    
    End Sub


    Cela marche parfaitement chez moi (avec un chemin bien sûr)
    0
    1. En décalant le " vers le C maintenant le PDF va dans le bon disque mais toujours pas dans le bon fichier.
      0
  4. Vérifie qu'il n'y a pas d'autres espaces
    et que NomDossier est correct
    (tu peux tester ce que retourne lINPUTBOX en rajoutant une ligne en-dessous :
    MsgBox NomDossier)

    Idem quand tu as le chemin MsgBox CheminDossier te permettra sans doute de trouver l'erreur

    0