¿Cómo vincular un botón en Excel para enviar datos filtrados por correo?

Para vincular un botón en Excel que permita enviar datos filtrados por correo electrónico, puedes usar VBA (Visual Basic for Applications). A continuación se muestra un paso a paso sobre cómo hacerlo:

Paso 1: Preparar tu hoja de Excel

  • Filtrar los datos: Asegúrate de que los datos en tu hoja están filtrados como deseas.

Paso 2: Insertar un botón

  • Mostrar la pestaña Desarrollador: Si aún no está visible, haz clic en «Archivo» > «Opciones» > «Personalizar cinta de opciones», y luego marca la casilla «Desarrollador».
  • Insertar un botón:
    • En la pestaña «Desarrollador», haz clic en «Insertar» en el grupo de controles.
    • Selecciona «Botón (Control de formulario)» y dibuja el botón en tu hoja.

Paso 3: Asignar una macro al botón

Sub EnviarCorreoFiltrado()
    Dim OutlookApp As Object
    Dim MailItem As Object
    Dim Rng As Range
    Dim FiltroRng As Range
    Dim Celda As Range
    Dim CuerpoCorreo As String
    
    ' Define el rango de los datos (ajusta el rango según tus necesidades)
    Set Rng = ThisWorkbook.Sheets("Hoja1").Range("A1:C10")
    
    ' OBTENER EL RANGO FILTRADO (debe estar previamente filtrado)
    On Error Resume Next
    Set FiltroRng = Rng.SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    
    ' Verifica si hay celdas visibles
    If FiltroRng Is Nothing Then
        MsgBox "No hay datos visibles después del filtrado.", vbExclamation
        Exit Sub
    End If
    
    ' Construir el cuerpo del correo con los datos filtrados
    For Each Celda In FiltroRng.Rows
        CuerpoCorreo = CuerpoCorreo & Join(Application.Transpose(Application.Transpose(Celda.Value)), vbTab) & vbCrLf
    Next Celda
    
    ' Crear la aplicación de Outlook
    Set OutlookApp = CreateObject("Outlook.Application")
    Set MailItem = OutlookApp.CreateItem(0)
    
    ' Crear el correo
    With MailItem
        .To = "destinatario@ejemplo.com"  ' Ajusta el destinatario
        .Subject = "Datos filtrados"
        .Body = "Aquí tienes los datos filtrados:" & vbCrLf & CuerpoCorreo
        .Display ' Cambia a .Send si deseas enviarlo directamente
    End With
    
    ' Limpiar variables
    Set MailItem = Nothing
    Set OutlookApp = Nothing
    Set FiltroRng = Nothing
    Set Rng = Nothing
End Sub
  • Crear una macro:
    • Haz clic derecho en el botón y selecciona «Asignar macro».
    • Haz clic en «Nuevo» para abrir el Editor de VBA.
  • Escribir el código VBA: Aquí tienes un ejemplo básico. Ajusta el rango y los destinatarios según tus necesidades.

Paso 4: Probar la macro

  • Guarda tu archivo de Excel con el formato habilitado para macros (.xlsm).
  • Haz clic en el botón que has creado y verifica que el correo se genera correctamente con los datos filtrados.

Nota: Para que esto funcione, necesitas tener Outlook instalado y configurado en tu computadora. Además, siempre asegúrate de revisar las políticas de seguridad de tu organización antes de automatizar el envío de correos electrónicos desde Excel.

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