Export pdf

Résolu
vince0708_3121 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous.

Je vous explique ma demande.

J'ai un fichier excel avec 250 onglets (feuilles en bas de l'écran) qui correspond a du personnel par ex 1 feuille Matthieu, 1 feuille Pierre..... donc à l'impression 250 pages.... je voudrais extraire chacune de ces pages individuellement avec leur nom et en pdf pour les envoyer 1 par 1 par mail à la personne concernée, .Est ce possible?

Autrement dit je voudrais envoyer la feuille pierre en pdf à pierre, la feuille matthieu à matthieu mais n'avoir qu'une seule manip pour les enregistrer individuellement sous le nom qu'elle porte et en pdf...
Merci par avance.
A voir également:

4 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

comme ceci:

Option Explicit
Dim nom, chemin  As String
Dim sh As Worksheet
 Sub Save_onglet()
'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
'en compte.
'ThisWorkbook correspond à l'objet classeur contenant la macro
For Each sh In ThisWorkbook.Worksheets
nom = sh.Name
  Sheets(nom).Select
    Save_pdf
 Next
End Sub
Private Sub Save_pdf()
chemin = ActiveWorkbook.Path & "\" 'chemin du dossier destination à adapter
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        chemin & "\" & nom & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
        MsgBox "Enregistrer" 'on peut supprimer
End Sub


2
ibru_7113 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
merci, je vais tester ça
Bonne journée
0
ibru_7113 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 





Bonjour,

J'ai essayé d'adapter ton code ( dans sheets Bulletin - insertion - Module ) mais cela me donne une erreur l'objet invoqué s'est déconnecté de ses clients

Option Explicit
Dim nom, chemin  As String
Dim sh As Worksheet
 Sub Save_onglet()

For Each sh In ThisWorkbook.Worksheets
nom = sh.Name
  Sheets("Bulletin").Select
    Save_pdf
 Next
End Sub
Private Sub Save_pdf()
chemin = ActiveWorkbook.Path & " C:\Users\EC000094\Desktop\Bulletins pdf\" 'chemin du dossier destination à adapter

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        chemin & " C:\Users\EC000094\Desktop\Bulletins pdf\" & nom & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
        MsgBox "Enregistrer" 'on peut supprimer
End Sub


Merci d'avance pour ton retour
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > ibru_7113 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Simplement comme cela si il n' y a qu'une feuille

Option Explicit
Private Sub Save_pdf()
Dim nom, chemin As String
nom = Range("C1") & "_" & Range("G1")
chemin = "C:\Users\EC000094\Desktop\" 'chemin du dossier destination à adapter
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin &  nom  &  ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
MsgBox "Enregistrer" 'on peut supprimer
End Sub


a mettre dans un module et associer à un bouton

quelques liens utile

https://forums.commentcamarche.net/forum/affich-36518314-export-pdf#3

@+ Le Pivert
0
ibru_7113 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
Re...
Il y a plusieurs feuilles générées par la liste déroulante c'est pourquoi, j'ai créé un sujet "l'objet s'est déconnecté de ses clients"
mais pas de souci, merci pour ton aide et encore désolée de n'être qu'une débutante qui patauge.

Bonne soirée
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > ibru_7113 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Mais les données sont toujours sur la feuille "Bulletin", c'est donc la feuille active que tu veux enregistrer en PDF.
Donc il suffit de sélectionner dans ta ComboBox l’élève qui va s'afficher sur la feuille "Bulletin" et ensuite d'appuyer sur le bouton qui est associé à la macro qui est dans un module.
Répété l'opération pour chaque élève.

C'est bien cela?

Par contre si tu ne veux que les données et non pas toute la feuille il faut changer la macro comme ceci:

Sub Save_pdf()
Dim nom As String
Dim chemin As String
Dim Plage As Range
Set Plage = Application.InputBox("Sélectionnez plage cellules:", Type:=8)
chemin = "C:\Users\EC000094\Desktop\" 'chemin du dossier destination à adapter
nom = Range("C1") & "_" & Range("G1")
Plage.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nom & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Set Plage = Nothing
MsgBox "Enregistrer" 'on peut supprimer
End Sub


cette macro te permet de sélectionner la plage de cellules que tu veux

@+ Le Pivert
0
vince0708_3121 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Re....

Merci pour cette réponse, mais pour moi, total amateur sur excel, je ne comprends rien, désolé de cette ignorance certainement, mais là ça me parait de l'hebreux pour moi!
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
0
vince0708_3121 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Super! encore merci.

Je sentais que ça touché aux macros... Chise que je ne maitrise pas. je vais donc suivre vos tuto. Ensuite je fais un simple copié collé de votre premier message? c'est ça?
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Oui dans un module que vous aurez inséré.

Voir Ruban Insertion - Module

Ensuite l'associer à un bouton pour lancer l'opération, voir le lien

Ce n'est pas très compliqué en suivant les instructions dans les lien fournis

@+ Le Pivert
0
vince0708_3121 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Genial merci ca fonctionne!!!!! Champagne!!! vous etes trop fort!
0