Bouton permettant créer pdf
Bonjour,
j'ai un classeur avec 13 feuilles, 1 pour la config et un par mois calendaire.
Je souhaite créer un bouton de commande pour enregistrer la feuille de calcul active en tant que fichier PDF.
Là ça va, j'ai utilisé ce code :
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="D:\Export.pdf", _
OpenAfterPublish:=False
Application.ScreenUpdating = True
End SubMais j'aimerai ajouter automatiquement un nom au fichier pdf créé, le nom du fichier serait récupéré dans la cellule L9.
Pouvez vous m'aider, je ne trouve pas la solution?
PS : Serait il envisageable de créer ce même bouton dans la feuille config et que lorsque je clique dessus, il me demande quelle feuille j'aimerai enregistrée?
Toujours en nommant le fichier d'après les infos récupérées en cellule L9
bonjour Hijack,
Private Sub CommandButton1_Click()
Dim sResponse As String, sh As Worksheet
sResponse = Application.InputBox("Quelle feuille", "Sauvergarder vers PDF", "Export", Type:=2)
On Error Resume Next
Set sh = Sheets(sResponse)
On Error GoTo 0
If sh Is Nothing Then MsgBox "Feuille " & sResponse & " n'existe pas", vbCritical: Exit Sub
sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:\" & Sheets("config").rang("L9").Value, OpenAfterPublish:=False
End SubBonsoir BsAlv,
merci de prendre le temps de me répondre.
Alors j'ai utilisé ton code.
J'ai une fenêtre qui s'ouvre me demandant d'entrer la feuille à sauvegarder. Par défaut elle affiche déjà Export que je change bien sur.
Je tape Septembre et là j'ai une fenêtre qui s'ouvre intitulé microsoft Visual Basic avec dedans le message suivant :
"erreur d'exécution "438". Propriété ou méthode non gérée par cet objet.
Je clique donc sur débogage et j'ai la ligne suivante surlignée en jaune
sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:\" & Sheets("Septembre").rang("L9").Value, OpenAfterPublish:=FalseJ'ai changé Config par Septembre car sinon dans config je n'aurai pas le bon texte. A savoir que dans la cellule L9 de chaque feuille, j'ai une formule concatener qui me permet d'afficher les résultats de plusieurs cellules de la feuille sous ce type Nom_HS_Mois_2023
re,
cette cellule L9, elle se trouve dans quelle feuille ? C'est ce nom que vous devez utiliser au lieu de "Septembre" (je supposais que c'était "config")
Oubien je n'ai pas bien compris votre explication.
Si cette L9 = "Mois_Septembre", alors le pdf sera "D:\Mois_Septembre.pdf"
c'est moi qui ne suis pas clair certainement.
J'ai un classeur avec 13 feuilles nommées Config, puis janvier, février, etc jusqu'à décembre.
J'ai pris l'exemple de la feuille de septembre pour essai. La confusion vient du fait certainement que j'ai, dans mon premier poste, demandé deux possibilités de bouton, un dans chaque feuille ou un seul dans config mais qui demandera plus de travail car il devra demander quelle feuille on créé en pdf et après récupérer les infos se trouvant dans la cellule L 9 de cette feuille.
La cellule L9 récupère les infos de plusieurs cellules de la feuille et les affiche sous ce type : Toto_HS_Mois_2023. C'est le nom que j'aimerai donné au fichier pdf créé, que ce noms e base sur la cellule L9
Mais restons sur le plus simple, à savoir un bouton par feuille.
J'ai bien évidemment changé Config par Septembre mais j'ai cette erreur qui arrive
Je viens de trouver pour le bouton par feuille
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="D:\" & ActiveSheet.Range("L9") & ".pdf", _
OpenAfterPublish:=False
Application.ScreenUpdating = True
End Sub Après je suis preneur si vous avez une solution pour un bouton unique que je mettrai dans config. Ce dernier me demanderait quelle feuille je veux enregistrer en pdf puis irait chercher le nom à enregistrer dans la cellule L9 de la feuille concernée.
Merci BsAlv de m'avoir aidé
Bonjour hijack
Vous devriez trouver votre bonheur dans le fichier mis à votre disposition dans la partie téléchargement
https://www.excel-pratique.com/fr/telechargements/utilitaires/pdf-email-vba-excel-no508
Merci de penser à
A+
Merci Bruno,
je vais regarder cela