Code VBA

Fermé
IMESYS Messages postés 4 Date d'inscription dimanche 8 mars 2020 Statut Membre Dernière intervention 10 mars 2020 - Modifié le 9 mars 2020 à 21:18
via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 - 10 mars 2020 à 02:12
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.
A voir également:

4 réponses

via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 705
8 mars 2020 à 22:01
Bonsoir

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

Cdlmnt
Via
1
IMESYS Messages postés 4 Date d'inscription dimanche 8 mars 2020 Statut Membre Dernière intervention 10 mars 2020
9 mars 2020 à 02:31
Merci, je vais essayer et te tiens au courant.
0
IMESYS > IMESYS Messages postés 4 Date d'inscription dimanche 8 mars 2020 Statut Membre Dernière intervention 10 mars 2020
9 mars 2020 à 20:52
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
IMESYS Messages postés 4 Date d'inscription dimanche 8 mars 2020 Statut Membre Dernière intervention 10 mars 2020
Modifié le 9 mars 2020 à 21:19
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
via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 705
9 mars 2020 à 21:17
Oh oui; étourderie de ma part j'ai omis de réintégrer aussi le chemin
 nomcomplet=CheminDossier & NomDossier & range("C8") &".pdf"

0
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
via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 705
10 mars 2020 à 00:55
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
IMESYS Messages postés 4 Date d'inscription dimanche 8 mars 2020 Statut Membre Dernière intervention 10 mars 2020
10 mars 2020 à 01:43
En décalant le " vers le C maintenant le PDF va dans le bon disque mais toujours pas dans le bon fichier.
0
via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 705
Modifié le 10 mars 2020 à 02:12
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