Code VBA

IMESYS Messages postés 4 Statut Membre -  
via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   -
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. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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. IMESYS Messages postés 4 Statut Membre
       
      Merci, je vais essayer et te tiens au courant.
      0
      1. IMESYS > IMESYS Messages postés 4 Statut Membre
         
        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
        0
    2. IMESYS Messages postés 4 Statut Membre
       
      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. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Oh oui; étourderie de ma part j'ai omis de réintégrer aussi le chemin
     nomcomplet=CheminDossier & NomDossier & range("C8") &".pdf"

    0
    1. IMESYS
       
      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. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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. IMESYS Messages postés 4 Statut Membre
       
      En décalant le " vers le C maintenant le PDF va dans le bon disque mais toujours pas dans le bon fichier.
      0
  4. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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