Enregistrement automatique en PDF, VBA

Tophe2

XLDnaute Impliqué
Bonjour le Forum,

J’essaie de faire un publipostage d'excel à excel, j'ai trouvé ce fichier joint sur le forum, le principe convient à ma situation cependant j'aimerai enregistrer le fichier créé dans un dossier sur le bureau : C:\Users\Christophe\Desktop et que le nom du fichier soit celui de la cellule B3 et B4 de l'onglet "Publipostage" afin que les enregistrements puissent se faire automatiquement et au fur et à mesure sans intervention de ma part.

merci pour votre aide
Bonne Journée
Christophe.
 

Pièces jointes

  • publi_client_xls.xlsm
    20.2 KB · Affichages: 47
  • publi_client_xls.xlsm
    20.2 KB · Affichages: 46

Papou-net

XLDnaute Barbatruc
Re : Enregistrement automatique en PDF, VBA

Bonjour Christophe,

Essaie le fichier en PJ pour voir s'il te convient.

NB: si les données des deux feuilles respectaient le même ordre, une seule ligne de code suffirait dans la boucle.

Bon dimanche.

cordialement.
 

Pièces jointes

  • Copie de publi_client_xls.xlsm
    23.3 KB · Affichages: 62

Lone-wolf

XLDnaute Barbatruc
Re : Enregistrement automatique en PDF, VBA

Bonjour Christophe

afin que les enregistrements puissent se faire automatiquement et au fur et à mesure sans intervention de ma part.

C'est qui qui changent les noms dans la feuille "Publipostage" ?? :confused:




Dans la feuille, crée une liste déroulante en B2 (Onglet Données > Validation des données). Pour enregister au format PDF

Code:
'A INSERER DANS LE MODULE DE LA FEUILLE PUBLIPOSTAGE
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error Resume Next
Application.DisplayAlerts = False
With Sheets("Données").Range("e2:e50")
Set cel = .Find(Range("b3"), , xlValues)
If Not cel Is Nothing Then
Range("b2") = cel.Offset(0, -1)
Range("b4") = cel.Offset(0, 1)
Range("b5") = cel.Offset(0, -2)

Range("b7") = cel.Offset(0, -4)
Range("b8") = cel.Offset(0, -3)
Range("b9") = "C-0" & cel.Offset(0, 0).Row
End If
End With
If Range("b2") = "" Then Range("b2:b9").ClearContents
Application.EnableEvents = True
End Sub


Sub enrg_pdf()
Dim Chemin$, Nom$

Chemin = "C:\Users\Christophe\Desktop\Publipostage\"
Nom = Sheets("Publipostage").Range("b3") & " " & Sheets("Publipostage").Range("b4")

Sheets("Publipostage").Activate

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    Chemin & Nom & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=False
End Sub


A+ :cool:
 
Dernière édition:

Tophe2

XLDnaute Impliqué
Re : Enregistrement automatique en PDF, VBA

Bonjour Lone-wolf,

je n'avais pas vu ta réponse, tu demandes : qui change la feuille publipostage ? il y aura une liste de noms avec les éléments qu'il faut pour effectuer le publipostage.

concernant ta proposition peux tu me dire comment l'insérer dans le code présent car ce que j'ai fait ne fait pas l'enregistrement en PDF....

Merci
Bonne Journée
Christophe.
 

Tophe2

XLDnaute Impliqué
Re : Enregistrement automatique en PDF, VBA

Re Lone-Wolf,

Je n'ai pas fait le menu déroulant en B2 de la feuille publipostage car je n'y arrive pas en faisant référence à une autre feuille je n'ai peut être pas compris ce qu'il fallait faire et pourquoi !! si tu peux m'expliquer ?

cependant j'ai adapté ton code avec celui Papou-net et ça à l'aire de fonctionner !! merci

Bonne Journée
Christophe.
 

Lone-wolf

XLDnaute Barbatruc
Re : Enregistrement automatique en PDF, VBA

Re,

tu as bien l'onglet "Données" non? Clique dessus, tu as "Validation des données", clique à nouveau. Dans la liste déroulante, choisi Liste. Réduit la fenêtre en cliquant sur le bouton bleu à droite. Ensuite tu sélectionne la feuille Données puis les noms. Avec la liste déroulante, ça t'évite de taper le nom à chaque fois.


A+ :cool:
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
284

Statistiques des forums

Discussions
312 103
Messages
2 085 311
Membres
102 860
dernier inscrit
fredo67