¿Cómo uso rangos de Excel como cuerpo del correo en formato HTML?

Para usar rangos de Excel como cuerpo de un correo electrónico en formato HTML, puedes proceder de la siguiente manera utilizando VBA (Visual Basic for Applications) en Excel:

   Sub EnviarCorreoConRangoComoHTML()
       Dim outlookApp As Object
       Dim correo As Object
       Dim hoja As Worksheet
       Dim rango As Range
       Dim cuerpoHTML As String
       Dim celda As Range
       
       ' Define la hoja y el rango que deseas enviar
       Set hoja = ThisWorkbook.Sheets("Hoja1") ' Cambia el nombre de la hoja
       Set rango = hoja.Range("A1:C10") ' Cambia el rango según necesidades
       
       ' Convierte el rango a HTML
       cuerpoHTML = "<table border='1'>" ' Inicia la tabla HTML
       For Each celda In rango.Rows
           cuerpoHTML = cuerpoHTML & "<tr>"
           For Each celda In celda.Cells
               cuerpoHTML = cuerpoHTML & "<td>" & celda.Value & "</td>"
           Next celda
           cuerpoHTML = cuerpoHTML & "</tr>"
       Next celda
       cuerpoHTML = cuerpoHTML & "</table>" ' Finaliza la tabla HTML
       
       ' Crea un nuevo correo de Outlook
       Set outlookApp = CreateObject("Outlook.Application")
       Set correo = outlookApp.CreateItem(0) ' 0 es un MailItem
       
       With correo
           .To = "destinatario@ejemplo.com"
           .Subject = "Correo con Rango de Excel"
           .HTMLBody = cuerpoHTML
           .Display ' Cambia a .Send si deseas enviarlo directamente
       End With
       
       ' Limpia objetos
       Set correo = Nothing
       Set outlookApp = Nothing
   End Sub
  • Habilita la pestaña Developer: Si aún no lo has hecho, habilita la pestaña Developer en Excel. Ve a Archivo > Opciones > Personalizar cinta de opciones y marca Developer.
  • Abre el Editor de VBA: Ve a la pestaña Developer y haz clic en «Visual Basic» para abrir el Editor de VBA.
  • Inserta un módulo nuevo: En el Editor de VBA, haz clic en Insertar > Módulo para crear un nuevo módulo.
  • Escribe el código VBA: Usa el siguiente código como ejemplo. Ajusta el rango de Excel que deseas convertir a HTML y envía por correo.
  • Ejecuta el macro: Cierra el editor de VBA y regresa a Excel. Luego, desde la pestaña Developer, haz clic en «Macros», selecciona `EnviarCorreoConRangoComoHTML` y haz clic en Ejecutar.

Este script convierte un rango de Excel en una tabla HTML que puedes usar como cuerpo del correo electrónico. Asegúrate de ajustar los rangos y las direcciones de correo electrónico según tus necesidades. Además, ten en cuenta que para que este código funcione, debes tener Microsoft Outlook instalado y configurado en tu sistema.

Conoce nuestros servicios

Conoce nuestra tienda

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Deja un comentario