Comment enregistrer excel en pdf...besoin d'aide svp

memene

XLDnaute Nouveau
Bonsoir à tous,

J'ai un fichier excel contenant plusieurs feuilles. Je voudrais enregistrer 1 fichier en format pdf différent pour chacune de mes feuilles: si j'ai 3 feuilles, j'obtiens 3 fichiers pdf.
Je sais le faire mais soit toutes les feuilles se retrouvent enregistrées sur le même fichier pdf ou alors je le fais feuille par feuille mais ça prend du temps.
Ce que je souhaiterais, c'est enregistrer 1 fichier pdf pour chaque feuille mais sans faire autant de manipulations qu'il y a de feuilles.
Est-ce possible? Merci pour vos réponses.

Memene
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Comment enregistrer excel en pdf...besoin d'aide svp

Re,
1°) Est-il possible de remplacer le msgbox par un userform ?
2°) Actuellement on imprime même les feuilles masquées : est-il possible de ne pas imprimer les feuilles masquées ?
pour le point 1, c'est tout à fait possible mais à quoi cela servirait-il ??

pour le point 2, j'ai adapté la macro ( il y a une 4ème feuille cachée dans le classeur) elle ne sera pas imprimée en PDF

à+
Philippe
 

Pièces jointes

  • 111.xls
    83.5 KB · Affichages: 286
  • 111.xls
    83.5 KB · Affichages: 165
  • 111.xls
    83.5 KB · Affichages: 196

libellule85

XLDnaute Accro
Re : Comment enregistrer excel en pdf...besoin d'aide svp

Re,
Merci pour tes réponses. Cela fonctionne impeccable.
Pourquoi je préfère l'userform plutôt que le msgbox ? Car avec l'userform on peut modifier la police, la couleur, etc... chose que l'on ne peut pas faire avec un msgbox !
Merci pour ton aide c'est sympa
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Comment enregistrer excel en pdf...besoin d'aide svp

Re,
Pourquoi je préfère l'userform plutôt que le msgbox ? Car avec l'userform on peut modifier la police, la couleur, etc... chose que l'on ne peut pas faire avec un msgbox !
Je vois , tu veux faire de la déco

un bouton pour déclencher une procédure, ............... c'est ridicule un bouton
un userform pour faire passer un message en fin de procédure, c'est quand même moche, on ne peut pas modifier la forme

pour la déco, voir le fichier en pièce jointe
en cliquant sur le "bouton", ça déclenche un compte à rebours ( 10, 9, ....... 1, 0 )
à la fin un message "fin de procédure" apparait de manière originale

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    23.8 KB · Affichages: 292
  • 111.xlsm
    23.8 KB · Affichages: 194
  • 111.xlsm
    23.8 KB · Affichages: 213

memene

XLDnaute Nouveau
Encore un peu d'aide svp...phlaurent55 si tu es là ou les autres

Bonjour et merci beaucoup à phlaurent55.

J'ai maintenant une autre demande dans la continuité de la précédente.
Grâce à la macro de phlaurent55, j'obtiens bien un fichier pdf par feuille de mon classeur. Mais, dans mon pdf, je souhaiterais que n'apparaisse que la 1ère page de ma feuille qui s'étend de A1:H49 car pour le moment apparaît également des formules ou des listes que j'ai tapées sur les autres pages et que ne souhaite pas voir apparaître dans mon pdf.
Est-ce possible?
Phlaurent55 si tu es là...

Cordialement
Memene
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Comment enregistrer excel en pdf...besoin d'aide svp

Re,

suite à ton message perso, je t'ai envoyé la solution il y a au moins 2 jours
voir pièce jointe

à+
Philippe
 

Pièces jointes

  • 111.xls
    80 KB · Affichages: 301
  • 111.xls
    80 KB · Affichages: 285
  • 111.xls
    80 KB · Affichages: 291
L

LAMULE

Guest
Re : Comment enregistrer excel en pdf...besoin d'aide svp

Je me permet d'actualiser le sujet....

Je cherche moi aussi à éditer un PDF à partir d'onglets...

J'ai créer un UserForm avec plusieurs CheckBox correspondante à chaque onglets de mon classeur et possédant un bouton "PDF" ....

Le but étant de pouvoir éditer 1 seul fichier PDF réunissant les onglets à partir des CheckBox cochée....et pour compliquer le tout de pouvoir éditer certain onglet en Recto/Verso.....
 

ponctuel2

XLDnaute Nouveau
Enchanté tout le monde ! La macro de départ est excellente... sauf qu'elle ne respecte pas le nom des FEUILLES.
Etonnant que personne ne le demande... C'est possible svp ?

Rappel de la MACRO initiale:
Sub Macro1()
For i = 1 To Sheets.Count
Sheets(i).Select
ChDir "C:\mesdocuments"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= "C:\mesdocuments\feuille_" & i & ".pdf"
Next i
End Sub
 

Tam89

XLDnaute Nouveau
Bonjour a tous,

J'ai lu tous les échanges et je voudrais savoir si vous pouvez me renseigner sur le projet suivant:
J'ai un document Excel que j'utilise pour générer des factures pour environ 150 clients.
Actuellement, je classe les feuilles par "Bâtiments".
Chaque feuille correspond a un ou plusieurs bâtiments, en fonction du nombre de clients par bâtiment.
Ex.
Feuille 1 = Bâtiment 2 > qui contient 7 clients donc 7 factures.
Feuille 2 = Bâtiment 3 & 4 > qui contient 8 clients donc 8 factures
Chaque facture se presente sur une seule page. Et toutes les factures ont le meme format.
Les factures sont reliées a un tableau principal, contenant toutes les informations des clients et les données a facturer.
Ex.
Nom client | Numero de compte | Adresse e-mail | Consommation électrique | Consommation eau | Charges de copropriété | Maintenance......

Lorsqu'on saisie les informations sur le tableau, les factures les récupèrent en fonction de chaque compte client.
Je dois ensuite utiliser une macro pour transformer toutes les feuilles en PDF, puis, passer par un site pour diviser chaque fichier PDF afin d'obtenir un fichier par page, et donc un fichier par facture.
Après, je dois renommer chaque fichier (150), avec : le numero d'appartement, compte client et numero de facture.
Enfin, je copie/colle chaque adresse e-mail dans des courrier individuels et ajoute les factures en piece jointe pour les envoyer.

Ce qui prend énormément de temps. Je ne suis pas très douée en Excel, mais je me débrouille.
Je voudrais donc savoir si avec une macro, je pourrais:
- extraire chaque page individuellement, en format PDF
- renommer chaque fichier PDF en reprenant 3 critères : numero d'appartement / numero de facture / compte client
- envoyer les fichiers PDF par e-mail a chaque client. (de manière automatique, ça serait un bonheur)

Merci d'avance pour votre aide!

Bonne journée!
 

fanch55

XLDnaute Barbatruc
Re : Comment enregistrer excel en pdf...besoin d'aide svp

Je me permet d'actualiser le sujet....

Je cherche moi aussi à éditer un PDF à partir d'onglets...

J'ai créer un UserForm avec plusieurs CheckBox correspondante à chaque onglets de mon classeur et possédant un bouton "PDF" ....

Le but étant de pouvoir éditer 1 seul fichier PDF réunissant les onglets à partir des CheckBox cochée....et pour compliquer le tout de pouvoir éditer certain onglet en Recto/Verso.....
 

fanch55

XLDnaute Barbatruc
Bonsoir,
Vous voulez donc imprimer chaque onglet choisi dans un fichier Pdf différent ?
Ci-joint le code modifié pour prendre la colonne B2 de chaque Onglet :
VB:
Option Explicit
Private Sub CommandButton2_Click()
Dim PrintDlg        As DialogSheet
Dim CurrentSheet    As Worksheet
Dim Sh              As Worksheet
Dim Cb              As CheckBox
Dim FileName        As Variant
Dim TopPos          As Integer

Application.ScreenUpdating = False

    ' Check for protected workbook
    If ActiveWorkbook.ProtectStructure Then
        MsgBox "Le classeur est protégé.", vbCritical
        Exit Sub
    End If

    ' Add a temporary dialog sheet
    Set CurrentSheet = ActiveSheet
    Set PrintDlg = ActiveWorkbook.DialogSheets.Add

    ' Add the checkboxes
    TopPos = PrintDlg.Buttons(1).Top
    For Each Sh In ActiveWorkbook.Worksheets
        ' Skip hidden sheets
        If Sh.Visible Then
           PrintDlg.CheckBoxes.Add(78, TopPos, 100, 16.5).Text = Sh.Name
           TopPos = TopPos + 13
        End If
    Next
    
    ' Move the OK and Cancel buttons
    PrintDlg.Buttons.Left = PrintDlg.CheckBoxes(1).Left + PrintDlg.CheckBoxes(1).Width
    
    ' Set dialog height, width, and caption
    With PrintDlg.DialogFrame
        .Height = Application.Max(68, PrintDlg.DialogFrame.Top + TopPos - 34)
        .Width = PrintDlg.Buttons(1).Left ' <-- bizarre mais fonctionne
        .Caption = "Cochez les feuilles à publier"
    End With
    
    ' Set focus on Cancel
    PrintDlg.Buttons(1).BringToFront
    
    ' Display the dialog box
    CurrentSheet.Activate
    Application.ScreenUpdating = True
        If PrintDlg.Show Then
            Dossier = "D:\....\....\"
            For Each Cb In PrintDlg.CheckBoxes
                If Cb.Value = xlOn Then
                    With Sheets(Cb.Caption)
                        .ExportAsFixedFormat Type:=xlTypePDF, _
                        FileName:=Dossier & .Range("B2") & ".pdf"
                    End With
                End If
            Next Cb
        End If

    ' Delete temporary dialog sheet (without a warning)
    Application.DisplayAlerts = False
    PrintDlg.Delete

' Reactivate original sheet
CurrentSheet.Activate
Set CurrentSheet = Nothing
Set PrintDlg = Nothing

End Sub

Nota:
n'oubliez pas de renseigner le Dossier..
si le nom de l'onglet désigne déjà la région,
remplacez .Range("B2") par .name
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
253

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG