Dans cet article, nous allons apprendre à automatiser le publipostage à l’aide du VBA dans Microsoft Excel.

Fusion et publipostage: – Il s’agit de la source pour fusionner les informations des données en texte, puis imprimer le document. Pour effectuer une telle opération, nous utilisons Microsoft Word.

Comprenons avec un exercice simple: – Nous avons un format de lettre dans la feuille de rapport, et nous voulons appliquer le publipostage via VBA dans lequel nous voulons également modifier les détails de la lettre.

image 1

Nous avons 2 feuilles. 1 feuille contient des données avec des détails à qui nous voulons donner des lettres. Dans les premières données, la colonne A contient le nom, la colonne B contient l’adresse postale, la colonne C contient la ville, la colonne D région et la colonne E et la colonne F contiennent le code postal. Il existe un bouton de commande à déplacer dans la feuille de rapport.

image 2

2 ^ nd ^ feuille est au format lettre avec 2 boutons de commande; un bouton pour se déplacer sur la feuille de données et le deuxième bouton de commande est de travailler pour le publipostage

image 3

Tout d’abord, nous allons écrire le code VBA pour le bouton de commande de Main Data. Nous devons suivre les étapes ci-dessous: – * Nous allons d’abord insérer le bouton de commande dans la feuille de calcul.

  • Allez dans l’onglet Développeur, puis insérez le bouton de commande d’Activexcontrol.

  • Renommez le bouton de commande avec le nom «Lettre», et attribuez maintenant la macro mentionnée ci-dessous: – Private Sub Main_data_Click ()

Feuilles de calcul (« Rapport »). Activer la plage (« A19 »). Afficher fin sous Maintenant, nous allons insérer le deuxième bouton de commande dans la feuille de rapport et affecter la macro pour se déplacer sur la première feuille. Nous devons suivre les étapes ci-dessous: – * Renommez le bouton de commande avec le nom «Data», et attribuez la macro mentionnée ci-dessous: – Private Sub CommandButton2_Click ()

Feuilles de travail (« Main_Data »). Activer la plage (« A1 »). Show End Sub Maintenant, nous allons écrire le code principal pour le publipostage en suivant les étapes ci-dessous: – Insérez le bouton de commande et renommez-le en « Letter Print », puis attribuez le code mentionné ci-dessous: – Private Sub CommandButton1_Click ()

Dim StartrowAs Integer, lastrow As Integer Dim MsgAs String Dim TotalrecordsAs String Dim name As String, Street_AddressAs String, city As String, region As String, country As String, postal As String Totalrecords = « = counta (Main_Data! A: A) »

Range (« L1 ») = Totalrecords Dim mydate As Date Set WRP = Sheets (« Report »)

mydate = Date WRP.Range (« A9 ») = mydate WRP.Range (« A9 »). NumberFormat = « [$ -F800] jjjj, mmmm, jj, aaaa »

WRP.Range (« A9 »). HorizontalAlignment = xlLeft Startrow = InputBox (« Entrez le premier enregistrement à imprimer. »)

lastrow = InputBox (« Entrez le dernier enregistrement à imprimer. »)

Si Startrow> lastrow Then Msg = « ERROR » & vbCrLf & « La ligne de départ doit être inférieure à la dernière ligne »

Msgbox Msg, vbCritical, « ExcelTip »

End If For i = Startrow To lastrow name = Sheets (« Main_data »). Cells (i, 1)

Street_Address = Sheets (« Main_data »). Cells (i, 2)

city ​​= Sheets (« Main_data »). Cells (i, 3)

region = Sheets (« Main_data »). Cells (i, 4)

country = Sheets (« Main_data »). Cells (i, 5)

postal = Sheets (« Main_data »). Cells (i, 6)

Sheets (« Report »). Range (« A7 ») = name & vbCrLf & Street_Address & vbCrLf & city & region & country & vbCrLf & postal Sheets (« Report »). Range (« A11 ») = « Cher » & «  » & name & « , »

CheckBox1 = True Si CheckBox1 Then ActiveSheet.PrintPreview Else ActiveSheet.PrintOut End If Next i End Sub Code Explication: – Tout d’abord, nous définirons les variables puis nous définirons le format de la date et de la date, puis nous définirons la dernière ligne et la ligne de début . Ensuite, nous avons créé une boîte de message pour transmettre le message. Ensuite, nous définirons les données et la plage que nous voulons capturer en lettre.

  • Pour exécuter le code, appuyez sur la touche F5 du clavier.

  • Ensuite, vous devez entrer le premier point d’enregistrement. Après cela, vous obtiendrez une nouvelle boîte de message pour entrer le dernier enregistrement de point.

image 4

image 5

  • Et, alors vous obtiendrez le document ci-dessous

image 6

  • La lettre sera mise à jour selon les détails mentionnés dans les données principales.

C’est ainsi que nous pouvons automatiser le publipostage via VBA dans Microsoft Excel.