Publipostage / impr pdf en masse

Bonjour @ toutes et tous,

Je ne savais pas trop comment appeler le sujet, mais voila le soucis.
j'ai un fichier facturation (plusieurs onglets)

je souhaiterais pouvoir imprimer facture par facture mais en auto (comme une sorte de publi) l'onglet Fact_1 par rapport a M1
en reprenant comme libellé le N° fact

Ma demande est un peu spéciale car mon épouse les imprime en fonction des besoins du client, cependant il semblerait qu'il faut que je les aient toutes en pdf ....

je vous joins le fichier.

Vous en remerciant vivement par avance.

18fact-xls-prat.zip (329.59 Ko)

Re bonjour @ tous
En cherchant, fouillant et essayant, j'ai réussi a créer le bouton d'enregistrement
ca fonctionne pas de soucis
- du coup le point 1 : enregistrer en pdf est fait
- Mais comment créer une sorte de boucle automatique en fonction de M1
du genre , M1 = 1
la macro s'execute
puis toujours en auto M1 passe à la valeur suivante, sa s'imprime et ainsi de suite
Est ce possible ?

Sinon je dirai à mon epouse de changer 6800 fois la valeur m1 et cliquer sur enregistrement

Sub impr_pdf()
'
' impr_pdf Macro
'
Dim monDossier As String, monFichier  As String
    monDossier = "C:\Users\Util\Desktop\Factures\"
    monFichier = [E4]

'
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        monDossier & monFichier, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
End Sub

Bonjour,

Voici un essai à adapter :

Sub impr_pdf()
Dim sRep$, sFilename$, i&
sRep = "C:\Users\Malek\Desktop\Factures"
with ActiveSheet
    for i = 1 to range("BASE[NUMERO]").rows.count
        .range("M1").value = range("BASE[NUMERO]")(i, 1).value
        sFilename = sRep & "\" & .range("E4").value
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFilename, IgnorePrintAreas:=False
    next i
end with
End Sub

où on parcourt toutes les lignes de l'hypothétique colonne NUMERO, de l'hypothétique tableau BASE, censée contenir les numéros de facture pour les reporter en M1 afin que les informations de la facture en cours, et notamment E4, changent.

Cdlt,

@3GB
je n'ai pas compris le BASE[NUMERO]
en fait tu parles de la colonne Feuil2!A ? (c'est la colonne se referant pour la validation de donnée M1)

@3GB
j'ai mis donc les données (en l'occurence T_1[ID])
j'avais peur que je recoive des doublons car je pouvais avoir plusieurs lignes avec le meme numéro (une commande avec plusieurs produits sont repartis sur plusieurs lignes)
c'est pour cela que j'avais crée une Feuille 2 avec =UNIQUE
enfin bref ...
Ca fonctionne nickel

Bonjour micsel,

Je suis content que ça marche. Il n'y aurait pas eu de doublons car les pdf auraient été remplacés tout simplement. C'est toutefois plus long à l'exécution et on peut contourner ce problème en rajoutant une condition permettant de tester l'inexistence du fichier avant de le créer :

Sub impr_pdf()
Dim sRep$, sFilename$, i&
sRep = "C:\Users\Malek\Desktop\Factures"
with ActiveSheet
    for i = 1 to range("T_1[ID]").rows.count
        .range("M1").value = range("T_1[ID]")(i, 1).value
        sFilename = sRep & "\" & .range("E4").value & ".pdf" '<<< rajout extension pdf
        if dir(sFilename) = "" then 'si le pdf n'existe pas, on le crée
            .ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFilename, IgnorePrintAreas:=False
        end if
    next i
end with
End Sub

Bonne continuation,

Rechercher des sujets similaires à "publipostage impr pdf masse"