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

Enregistrement en pdf. (Résolu)

  • Initiateur de la discussion Initiateur de la discussion T77XDD
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T77XDD

XLDnaute Occasionnel
Bonjour,
je cherche à enregistrer un document en pdf.
Je suis parti de là
Code:
Sub creation_fichier_pdf()
Dim Boutique$, Mois$, Resp$, NomFichierPDF As String
Resp = Range("M2")
Mois = Range("E2")
Boutique = Range("B2")
NomFichierPDF = Mois & "_" & Boutique & ".pdf"
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _:
Filename:="K:\RDS\" & Resp & "\" & NomFichierPDF & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
Pour arriver là:
Code:
[COLOR="#FFFF00"]Sub creation_fichier_pdf()[/COLOR]
Dim Entr$, Objet$, Fax$, NomFichierPDF As String
Fax = Range("I2")
Objet = Range("C24")
Entr = Range("F14")
NomFichierPDF = "Fax " & " " & Fax & " " & Objet & " " & Entr & ".pdf"
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\ESSAI\" & Entr & "\" & NomFichierPDF & ".pdf"
[COLOR="#FF0000"]Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
[/COLOR]
Je me retrouve avec une erreur de compilation, erreur de syntaxe. 😡
Voilà je ne sais pas pourquoi cela ne fonctionne pas, j'ai cherché mais......
Je sais que en informatique la pluspart des problèmes sont entre le siège et le clavier. 😱
Merci de votre aide.
 

Pièces jointes

Dernière édition:
Re : Enregistrement en pdf.

Re,
Après 2, 3 manipulations je suis arrivé à ça
Code:
Sub creation_fichier_pdf()
Dim Entr$, Objet$, Fax$, NomFichierPDF As String
Fax = Range("I2")
Objet = Range("C24")
Entr = Range("F14")
NomFichierPDF = "Fax" & " " & Fax & " " & Objet & " " & Entr & ".pdf"
Filename:="C:\ESSAI\" & Entr & "\" & NomFichierPDF
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
avec seul "Filename:="C:\ESSAI\" & Entr & "\" & NomFichierPDF" en rouge

D'après moi, dans cette suite j'énumère les références (Dim Entr$, Objet$, Fax$, NomFichierPDF As String), la manière de s'en servir (NomFichier bla bla) en ordre inverse, je ne sais pas pourquoi mais c'est ce que j'ai trouvé dans chacun des exemples, enfin où utiliser ce NomFichier -> Filename.
Les ", _" servent à séparer des instructions liées donc à partir de "ThisWorkbo..." d'après moi elles sont liées, avant elles "ne sont que" des instructions, paramètres etc...

Si quelqu'un à un site ou un bouquin où trouver ce genre d'infos, sans être obligé de les comprendre 😕 ce serai bien sympa.
merci pour cette réponse rapide en tout cas
PS: le classeur modifié en pj
 

Pièces jointes

Dernière édition:
Re : Enregistrement en pdf.

Bonjour T77XDD,

Je suis reparti de ton premier fichier.
Code:
Sub creation_fichier_pdf()
Dim Entr$, Objet$, Fax$, NomFichierPDF As String
Fax = Range("I2")
Objet = Range("C24")
Entr = Range("F14")
NomFichierPDF = "Fax " & " " & Fax & " " & Objet & " " & Entr & ".pdf"
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\ESSAI\" & Entr & "\" & NomFichierPDF & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub

Dim est une instruction qui permet de déclarer des variables. Les variables déclarées avec un $ à la fin de leur nom sont implicitement des variables de type string. Dim Entr$ est équivalent à Dim Entr as string.

Ensuite on affecte à ses variables une valeur:
Fax ==> Numéro du fax, Objet => l'objet du fax, Entr => le destinataire
Avec cela on construit le nom du fichier NomFichierPDF ("Fax F 21356 SARR El-Hadji GABRIELE.pdf")

Ta macro se termine par une instruction unique ThisWorkbook.ExportAsFixedFormat qui comporte plusieurs paramètres (type, Filename, Quality,... etc.)

Cette instruction s'étend sur plusieurs lignes. Il faut dans ce cas terminer chaque ligne par un espace suivi d'un souligné pour indiquer que l'instruction continue sur la ligne suivante. Dans ta première tentative il manquait ", _" à la fin de la ligne Filename=.....

Le paramètre Filename dans l'instruction ThisWorkbook.ExportAsFixedFormat indique le chemin complet et nom du fichier à exporter en format PDF.
Ici cela donne => Filename:="C:\ESSAI\" & Entr & "\" & NomFichierPDF & ".pdf", _
Ici cela donne => "C:\ESSAI\GABRIELE\Fax F 21356 SARR El-Hadji GABRIELE.pdf.pdf"

1) on voit qu'il est inutile de rajouter & ".pdf" puisque NomFichierPDF se termine déjà par ".pdf"
2) que le répertoire de sauvegarde est "C:\ESSAI\GABRIELE\" => ce répertoire doit déjà exister sur ton disque C: pour que l'instruction puisse aboutir.

Pour les livres traitant de VBA, je ne suis pas un spécialiste.
 

Pièces jointes

Re : Enregistrement en pdf.

Bonjour et merci pour cette réponse détaillée, grâce à elles j'ai pu modifier mon document de travail mais en le faisant directement sur les feuilles. 🙂
Voilà ce que ça donne:
Code:
Sub onglet_FormatPDF()
Dim Ents$, Locs$, DPs$, NomFichierPDF As String, Tableau() As String
ActiveCell.CurrentRegion.Select
ReDim Tableau(1 To ActiveCell.CurrentRegion.Count)
For Ctr = 1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr) = ActiveCell.CurrentRegion(Ctr)
Next
For Ctr = 1 To ActiveCell.CurrentRegion.Count
DPs = Sheets("DP").Range("I1")
Locs = Sheets("DP").Range("C8")
Ents = Sheets("DP").Range("E8")
App = Sheets("DP").Range("C7")
Bat = Sheets("DP").Range("C5")
NomFichierPDF = "DP" & " " & DPs & " " & Locs & " " & Ents
Sheets("DP").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\DP\" & Bat & "\" & App & "\" & NomFichierPDF & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Next
End Sub
Là ça marche impeccable à ceci près, je dois modifier tous mes dossiers de destination.

Avec Filename j'obtient par exemple:
"C\Bt 54\220\NomFichierPDF.pdf"
alors qu'il faudrait
"C\Bat 54\4026.0220\NomFichierPDF.pdf"

Pour Bt 54 à la place de Bat 54 pas grave, j'ai de toute façon à modifier la saisie soit sur les dossiers soit sur les locataires.

Par contre 4026.0220 je l'obtient par le format de la cellule (4026.0000) et les nb vont de 4 à 321 et le nom du dossier complet est "4026.App Locs" par exemple "4026.0220 AZZI"

En dernier j'ai essayé de rajouter l'impression soit du doc en xls ou pdf mais ça veut pas!!! 😡
Merci et bonne journée.
 
Re : Enregistrement en pdf.

Au final j'ai réussi pour l'impression en rajoutant
Code:
With ActiveSheet
.PageSetup.BlackAndWhite = True
.PrintOut
End With
en début de page sauf que je ne sais pas pourquoi, alors que toutes les cellules sont vides et que rien ne dépasse même pas les bordures, à l'impression (comme à l'aperçu) j'ai droit à 4 pages la première avec le document et trois pages blanches.
Pour les cours j'ai trouvé VB-excel2.pdf et formationVBA.pdf sauf que bonjour va surement y avoir de la cervelle collée sur les murs avant ce soir. 🙄
Merci encore je suis vraiment intéressé par cette histoire de "format", je retourne hacher un peu de code.
A bientôt.
 
Dernière édition:
Re : Enregistrement en pdf. (Résolu)

Bonsoir, pas d'idée pour cette histoire de format?
Dommage, ça aiderai bien.
En fait j'ai appris aujourd'hui que ce que je fait là, je ne pourrais pas l'utiliser, enfin pas pendant longtemps, tant pis...
Ils se décident enfin à informatiser le bas de l'échelle🙄
En tout cas j'ai beaucoup appris, pour moi c'est l'essentiel et j'espère que c'est pas finit.
Je voudrais savoir à quoi sert "Tableau(Ctr)", comment on s'en sert, pourquoi ça "For Ctr = 1 To ActiveCell.CurrentRegion.Count", à quoi ça correspond
Voilà c'est tout enfin pour le moment 😛 j'ai encore 2, 3 questions et j'suis un peu dur de la comprenure
alors à la revoyure
Merci
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
245
Réponses
10
Affichages
547
Réponses
3
Affichages
887
Réponses
3
Affichages
672
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…