transformer excel en PDF selon un bouton

Shadtita

XLDnaute Nouveau
Bonjour,

Avant toute chose, j'ai recherché sur le forum afin de savoir si mon problème ne pouvait pas être résolu par l'expérience d'un prédécesseur mais je n'ai pas trouvé mon bonheur, donc toutes mes excuses si vous devez vous répéter !!

Voilà voilà, j'ai créé un document (excel bien sur) et je souhaitais créer un bouton qui permette d'enregistrer le document sous le nom d'une cellule (toujours la même) et dans un certain dossier (toujours le même).

ça j'ai réussi.

Mais je suis maintenant bloquée car je souhaiterais que ce document s'enregistre en PDF grâce au même bouton.

Pour info, au boulot, nous utilisons "CutePDF" (donc d'habitude je fais : "imprimer", choix de "CutePDF" et là il me propose l'endroit où je veux enregistrer...)

Je souhaite donc qu'en appuyant sur le fameux bouton : le fichier s'enregistre sous le nom d'une cellule donnée, dans un dossier donné et en PDF.

J'espère que j'ai été claire ce n'est pas toujours facile ^^ et j'espère aussi que vous pourrez m'aider, ce dont je ne doute pas !

Bonne journée !
 

Excel-lent

XLDnaute Barbatruc
Re : transformer excel en PDF selon un bouton

Bonsoir et bienvenu sur le forum Shadtita,

La méthode que je connais est la suivante :
-> tu lance l'enregistreur de macro ("outils"/"Macros"/"Nouvelle macro...")
-> puis tu clic sur :
----> "fichier"
----> "imprimer"
----> dans la zone nom de l'imprimante, tu regarde, l'une d'elle doit s'appeler "PDF ..." (c'est pour générer un fichier PDF).
----> tu clic sur "ok"
----> tu donne un nom au fichier
----> tu sélectionne l'emplacement où tu veux mettre le sauvegarder
----> tu valides
----> tu arrêtes l'enregistreur de macro

Il ne te reste plus qu'à cliquer sur "alt"+"F11" et tu verras ta macro.
Tu aurais aussi pu faire le code à la mano, mais l'avantage de cette méthode, il te donne le nom précis de "l'imprimante"!

Un truc du genre :
Sheet.PrintOut ActivePrinter:="PDFCreator sur Ne00:"


Chose parfois difficile à obtenir, même auprès de l'informaticien de la société (un vieux compte à régler avec mon informaticien :D).

Tiens nous au courant!

Bonne soirée
 

Shadtita

XLDnaute Nouveau
Re : transformer excel en PDF selon un bouton

Ahlala non hihi ! j'ai bien essayé, mais pour cela il y a 2 choses :
- d'abord, lorsque je crée la macro en sélectionnant l'imprimante etc, la macro ne retient que le fait d'imprimer. Donc il faut que par défaut, ce soit CutePDF et pas une autre imprimante...

- une fois que j'ai créé la macro, même si ça marchait, je voudrais "l'associer" à mon bouton, pour qu'en cliquant sur ce bouton, j'ai ma sauvegarde selon le nom de ma cellule + dans un dossier spécifique + transformation en PDF
J'imagine que je devrais copier le code de la macro quelque part mais où et comment ? ^^

C'est frustrant de ne pas savoir comment ça marche VBA !!!
 

pou pouille

XLDnaute Nouveau
Re : transformer excel en PDF selon un bouton

bonjours , pour la partie qui est de savoir ou copier le code ,je peux t'aider , pour le reste mais connaissances sont nulles dans la macro avec le pdf .
une fois ton code crée tu va dans vba editor (Alt+F11)
tu selectionne la feuil1 ( je pense , c'est celle qui possède le bouton) , double clic pour ouvrir ,
en haut de ta fenetre tu as une liste déroulante et tu choisi commandButton1 (si c'est le bouton 1...) et la deuxième liste déroulante est par défaut je croi "click". ensuite tu place ton code entre le
Private Sub CommandButton1_Click()
et le
End Sub

j'èspère t'avoir aidé .
Pou Pouille
 

Phil39

XLDnaute Occasionnel
Re : transformer excel en PDF selon un bouton

Salut,

Ce lien devrait grandement t'être utile même s'il parle de PdFCréator :

https://www.excel-downloads.com/threads/idee-pour-creer-un-fichier-pdf-depuis-pdf-creator.78238/

Sinon, il y a encore plus simple en Excel 2007 : il y a un add-on gratuit sur le site de Microsoft à télécharger et qui permet d'enregistrer un doc Office en PdF en Enregistré sous...

Et là, le code est encore plus simple :

exemple pour l'enregistrement en PdF de la page active : ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin pour enregitrer
avec éventuellement les options : Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
 
Dernière édition:

Shadtita

XLDnaute Nouveau
Re : transformer excel en PDF selon un bouton

Moi je suis sur 2003 ^^

Ma macro c'est :

Private Sub CommandButton1_Click()
Dim Fichier As Variant
Fichier = "W:\nomdelentreprise\TRANSACTIONS\Commandes\" & Range("B12").Value
ActiveWorkbook.SaveAs Filename:= _
Fichier
End Sub


si je veux ajouter la macro créée pour mettre en PDF, je mets ça où ? en dessous de "fichier" ?
J'ai envie de compreeeendre !

je vais regarder le lien...

Edit : alors j'ai bien vu le lien, ça m'a pas l'air mal mais je ne comprends pas :( c'est trop technique pour moi !
 
Dernière édition:

Phil39

XLDnaute Occasionnel
Re : transformer excel en PDF selon un bouton

Moi je suis sur 2003 ^^

Ma macro c'est :

Private Sub CommandButton1_Click()
Dim Fichier As Variant
Fichier = "W:\nomdelentreprise\TRANSACTIONS\Commandes\" & Range("B12").Value
ActiveWorkbook.SaveAs Filename:= _
Fichier
End Sub


si je veux ajouter la macro créée pour mettre en PDF, je mets ça où ? en dessous de "fichier" ?
J'ai envie de compreeeendre !

je vais regarder le lien...

Edit : alors j'ai bien vu le lien, ça m'a pas l'air mal mais je ne comprends pas :( c'est trop technique pour moi !

lodam dans sa seconde intervention dans le fil de discussion a mis un excel en exemple avec un bouton qui "PdFise" la page et enregistre le fichier sur le bureau.

Je met ici son code qui se trouve dans la feuill1 sous VB :

Private Sub CommandButton1_Click()
PrintToPDF_Early
End Sub
Sub PrintToPDF_Early()
'Author : Ken Puls (Excelguru.ca | Tips and pointers for Excel and other MS Office applications)
'Macro Purpose: Print to PDF file using PDFCreator
' (Download from SourceForge.net: PDFCreator)
' Designed for early bind, set reference to PDFCreator
Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
'/// Changer le nom du fichier de sortie sur la lign cidessous: ///
sPDFName = "testPDF.pdf"
sPDFPath = ActiveWorkbook.Path & Application.PathSeparator
'Check if worksheet is empty and exit if so
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
Set pdfjob = New PDFCreator.clsPDFCreator
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With
'Imprime le document en PDF
ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
'Attend que le document soit entré dans la file d'impression
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'Attend que l'impression du document soit terminée
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
pdfjob.cClose
Set pdfjob = Nothing
End Sub
 

Phil39

XLDnaute Occasionnel
Re : transformer excel en PDF selon un bouton

Peut-être vais je poser une question bête...

mais si je changeais tous les "PDFCreator" en "CutePDF" (que j'utilise)...est ce que ça marcherait ?

En théorie oui...
Par contre, il faut aussi cocher le complément de ton application PdF puisque tu fais appel à une source extérieure à Excel :

Alt+F11
Menu Compléments
Gestionnaire de compléments
Dans la liste, cocher l'élément correspondant à "CutePDF"
save
relance de l'excel
 

RENAUDER

Nous a quitté
Repose en paix
Re : transformer excel en PDF selon un bouton

Bonjour,
Non tout ne marchera pas car il y a des parties liées à PDFCreator comme par exemple
Code:
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = sPDFPath
        .cOption("AutosaveFilename") = sPDFName
        .cOption("AutosaveFormat") = 0    ' 0 = PDF
        .cClearCache
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
249

Statistiques des forums

Discussions
312 677
Messages
2 090 820
Membres
104 676
dernier inscrit
akram1619