XL 2016 Impression pdf multiple et envoie par mails

auverland

XLDnaute Occasionnel
Bonjour à tous,
J'aimerais imprimer dans un seul fichier pdf tous mes formulaires suivant ma sélection colonne G de la feuille "Base"

La cellule I2 de devis modifie mes formulaires et mes fiches

Ce que j'aurais aimer c'est imprimer pour chaque sélection le devis et à la suite la fiche et ce pour toutes les lignes sélectionnées.
Apres l'idéal c'est l'envois par mails suivant les tableaux de la feuille mails diffusion
 

Pièces jointes

  • test impression pdf.xlsx
    62.3 KB · Affichages: 23

job75

XLDnaute Barbatruc
Bonjour auverland, kiki29, le forum,
J'arrive a faire un pdf par formulaire mais pas fichier pdf global
Eh bien montrez-nous déjà ce que vous faites avec un seul formulaire.

En effet ce n'est pas très clair : il semble que vous voulez imprimer en même temps le devis et la fiche.

Quel est l'intérêt puisque les données des feuilles Devis et Fiche sont les mêmes ?

Bonne journée.
 

job75

XLDnaute Barbatruc
Re,

Voyez le fichier joint, les feuilles "Devis" et "Stockage" et les macros des 3 boutons :
Code:
Sub Stockage()
If IsError([B12]) Then Exit Sub
Dim F As Worksheet, derlig&
Set F = Feuil3 'CodeName feuille Devis
With Feuil4 'CodeName feuille Stockage
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    derlig = .Cells(.Rows.Count, 3).End(xlUp).Row
    If derlig = 1 Then
        derlig = -3
    Else
        .HPageBreaks.Add Before:=.Rows(derlig + 4) 'saut de ligne
    End If
    If IsNumeric(Application.Match(F.[C15], .[C:C], 0)) Then _
        If MsgBox("le nom '" & F.[C15] & "' est déjà stocké, voulez-vous continuer ?", 52) = 7 Then Exit Sub
    F.[A1:D26].Copy .Cells(derlig + 4, 1) 'pour copier les formats
    .Cells(derlig + 4, 1).Resize(26, 4) = F.[A1:D26].Value 'copie les valeurs
    .PageSetup.PrintArea = "$A$1:$D$" & derlig + 29 'zone d'impression
    '.Activate 'facultatif
End With
End Sub

Sub PDF()
Dim nomfich$
nomfich = ThisWorkbook.Path & "\Devis " & Format(Now, "yyyy-mm-dd hh.mm.ss") 'à adapter
With Feuil4 'CodeName feuille Stockage
    If Application.CountA(.[B:B]) Then .ExportAsFixedFormat xlTypePDF, nomfich, Quality:=xlQualityStandard
End With
End Sub

Sub RAZ()
Dim o As Object
Application.ScreenUpdating = False
With Feuil4 'CodeName feuille Stockage
    For Each o In .DrawingObjects
        If o.TopLeftCell.Column = 1 Then o.Delete
    Next
    .[A:D].Clear
    .PageSetup.PrintArea = "$A:$D"
End With
End Sub
Nota : j'ai supprimé les colonnes E et F car les cellules fusionnées ne permettaient pas d'afficher le renvoi à la ligne en D19.

A+
 

Pièces jointes

  • test impression pdf(1).xlsm
    86.7 KB · Affichages: 24

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 898
Membres
101 834
dernier inscrit
Jeremy06510