¿Cómo puedo hacer una lista en excel para enviar (mensualmente) los estados de cuenta a nuestros clientes en PDF?

Tenemos una lista de clientes a quienes les enviamos cada inicio de mes su estado de cuenta, normalmente lo hago manual y voy haciendo un correo para cada uno dado que algunos son en ingles y otros en español. Pero quiero saber si se puede hacer una tabla en excel donde pueda meter toda la información de nuestros clientes y seleccionar a quienes se les envíe el texto en ingles y a los otros en español así comot también adjuntar el archivo en pdf.

2 respuestas

Respuesta

Te anexo las macros de mi aplicación para enviar correos masivos:

Macro en un módulo:

Sub correo()
'Por.Dante Amor
    col = Range("H1").Column
    For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
        Set dam = CreateObject("outlook.application").createitem(0)
        dam.To = Range("B" & i).Value 'Destinatarios
        dam.CC = Range("C" & i).Value 'Con copia
        dam.Bcc = Range("D" & i).Value 'Con copia oculta
        dam.Subject = Range("E" & i).Value '"Asunto"
        dam.body = Range("F" & i).Value '"Cuerpo del mensaje"
        '
        For j = col To Cells(i, Columns.Count).End(xlToLeft).Column
            archivo = Cells(i, j).Value
            If archivo <> "" Then dam.Attachments.Add archivo
        Next
        dam.send 'El correo se envía en automático
        'dam.display 'El correo se muestra
    Next
    MsgBox "Correos enviados", vbInformation, "SALUDOS"
End Sub

Macros en los eventos de la hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
On Error Resume Next
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    For Each t In Target
        If t.Value <> "" Then
            Cells(t.Row, "G").Select
            ActiveSheet.Hyperlinks.Add _
                Anchor:=Selection, _
                Address:="", _
                SubAddress:="Hoja1!C" & t.Row, _
                TextToDisplay:="Insertar archivo"
        End If
    Next
    Cells(Target.Row, 3).Select
End If
End Sub
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
'Por.Dante Amor
    linea = ActiveCell.Row
    'col = Range("H1").Column
    col = Cells(linea, Columns.Count).End(xlToLeft).Column + 1
    If col < 8 Then col = 8
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Seleccione uno o varios archivos"
        .Filters.Clear
        .Filters.Add "archivos pdf", "*.pdf*"
        .Filters.Add "archivos de excel", "*.xls*"
        .Filters.Add "Todos los archivos", "*.*"
        .FilterIndex = 2
        .AllowMultiSelect = True
        .InitialFileName = ThisWorkbook.Path
        If .Show Then
            For Each ar In .SelectedItems
                'rutaarchivo = .SelectedItems.Item(i)
                Cells(linea, col) = ar
                col = col + 1
            Next
        End If
    End With
End Sub

La hoja deberá tener esta estructura:


Con esta aplicación puedes poner el asunto en español, a quién, con copia, copia oculta, cuerpo en español, uno o varios archivos. En la misma hoja puedes configurar el asunto en inglés, a quién, con copia, copia oculta, cuerpo en inglés, uno o varios archivos.

Envíame un correo para reenviarte el archivo con mi aplicación para que la pruebes.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Liz Elizondo” y el título de esta pregunta.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas