En este artículo, aprenderemos cómo automatizar la combinación de correspondencia mediante el uso de VBA en Microsoft Excel.

Combinar correspondencia: esta es la fuente para combinar la información de los datos en texto y luego imprimir el documento. Para realizar dicha operación utilizamos Microsoft Word.

Comprendamos con un ejercicio simple: – Tenemos un formato de carta en la hoja de Informe y queremos aplicar la combinación de correspondencia a través de VBA en la que también queremos cambiar los detalles de la carta.

image 1

Disponemos de 2 hojas. 1 hoja contiene datos con detalles a quienes queremos entregar cartas. En los primeros datos, la columna A contiene el nombre, la columna B contiene la dirección de la calle, la columna C contiene la ciudad, la columna D la región y la columna E y la columna F contienen el código postal. Hay un botón de comando para moverse en la hoja del informe.

image 2

2 ^ nd ^ la hoja tiene el formato de letra con 2 botones de comando; un botón para moverse en la hoja de datos y el segundo botón de comando es trabajar para la combinación de correspondencia

image 3

En primer lugar, escribiremos el código VBA para el botón de comando de Main Data. Necesitamos seguir los pasos dados a continuación: – * Primero insertaremos el botón de comando en la hoja de trabajo.

  • Vaya a la pestaña Desarrollador y luego inserte el botón Comando de Activexcontrol.

  • Cambie el nombre del botón Comando con el nombre «Letra», y ahora asigne la macro mencionada a continuación: – Private Sub Main_data_Click ()

Hojas de trabajo («Informe»). Activar rango («A19»). Mostrar End Sub Ahora, insertaremos el segundo botón de comando en la hoja Informe y asignaremos la macro para que se mueva en la primera hoja. Necesitamos seguir los pasos que se indican a continuación: – * Cambiar el nombre del botón de comando con el nombre «Datos» y asignar la macro mencionada a continuación: – Private Sub CommandButton2_Click ()

Hojas de trabajo («Main_Data»). Activar rango («A1»). Mostrar End Sub Ahora escribiremos el código principal para la combinación de correspondencia siguiendo los pasos que se indican a continuación: – Inserte el botón de comando y cámbiele el nombre a «Letter Print», y luego asigne el código mencionado a continuación: – Private Sub CommandButton1_Click ()

Dim StartrowAs Integer, lastrow As Integer Dim MsgAs String Dim TotalrecordsAs String Dim name As String, Street_AddressAs String, ciudad Como String, región Como String, país As String, postal As String Totalrecords = «= counta (Main_Data! A: A)»

Rango («L1») = Total de registros Dim mydate As Date Set WRP = Sheets («Report»)

mydate = Fecha WRP.Range («A9») = mydate WRP.Range («A9»). NumberFormat = «[$ -F800] dddd, mmmm, dd, aaaa»

WRP.Range («A9»). HorizontalAlignment = xlLeft Startrow = InputBox («Ingrese el primer registro para imprimir.»)

lastrow = InputBox («Ingrese el último registro para imprimir.»)

If Startrow> lastrow Then Msg = «ERROR» & vbCrLf & «La fila inicial debe ser menor que la última fila»

Msgbox Msg, vbCritical, «ExcelTip»

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

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

ciudad = Hojas («Datos_principales»). Celdas (i, 3)

región = Hojas («Datos_principales»). Celdas (i, 4)

país = Hojas («Datos_principales»). Celdas (i, 5)

postal = Hojas («Datos_principales»). Celdas (i, 6)

Hojas de cálculo («Informe»). Rango («A7») = nombre & vbCrLf & Street_Address & vbCrLf & ciudad & región & país & vbCrLf & postales Hojas de cálculo («Informe»). Rango («A11») = «Estimado» & «» & nombre & «,»

CheckBox1 = True Si CheckBox1 Entonces ActiveSheet.PrintPreview Else ActiveSheet.PrintOut End If Next i End Sub código Explicación: – Primero, definiremos las variables, luego definiremos la fecha y el formato de fecha, luego definiremos la última fila y la fila de inicio . Luego, hemos creado un cuadro de mensaje para transmitir el mensaje. Luego definiremos los datos y rango que queremos capturar en letra.

  • Para ejecutar el código, presione la tecla F5 en el teclado.

  • Luego debe ingresar el primer punto de registro. Después de eso, obtendrá un nuevo cuadro de mensaje para ingresar el último registro de punto.

image 4

image 5

  • Y luego obtendrá el documento que se muestra a continuación

image 6

  • La carta se actualizará de acuerdo con los detalles mencionados en los datos principales.

Esta es la forma en que podemos automatizar la combinación de correspondencia a través de VBA en Microsoft Excel.