Enregistrement en pdf. (Résolu)

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. :mad:
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. :eek:
Merci de votre aide.
 

Pièces jointes

  • Enr-pdf.xlsm
    193 KB · Affichages: 53
  • Enr-pdf.xlsm
    193 KB · Affichages: 59
  • Enr-pdf.xlsm
    193 KB · Affichages: 58
Dernière édition:

T77XDD

XLDnaute Occasionnel
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 :confused: ce serai bien sympa.
merci pour cette réponse rapide en tout cas
PS: le classeur modifié en pj
 

Pièces jointes

  • Enr-pdf.xlsm
    192.9 KB · Affichages: 46
  • Enr-pdf.xlsm
    192.9 KB · Affichages: 53
  • Enr-pdf.xlsm
    192.9 KB · Affichages: 54
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
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

  • Enr-pdf v1.xlsm
    195.8 KB · Affichages: 54

T77XDD

XLDnaute Occasionnel
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!!! :mad:
Merci et bonne journée.
 

T77XDD

XLDnaute Occasionnel
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. :rolleyes:
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:

T77XDD

XLDnaute Occasionnel
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:rolleyes:
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 :p j'ai encore 2, 3 questions et j'suis un peu dur de la comprenure
alors à la revoyure
Merci
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 238
Messages
2 086 492
Membres
103 234
dernier inscrit
matteo75654548