Enviar archivos desde excel cuyos nombres varían todos los días.

El envío es diario, tomo 100 archivos de una carpeta y los envío por Outlook a los diferentes clientes.

Con tu macro de Excel puedo hacerlo, pero todos los días debo cambiar todos los hipervínculos dado que los nombres de los archivos a enviar difieren en la fecha. Ej ClienteA16 es el de hoy, el de mañana sera ClienteA17 y así sucesivamente. ¿No hay forma de automatizar eso también? Para no tener que ingresar los 100 hipervínculos diariamente!

1 respuesta

Respuesta
1

Solamente cambia el 16 por el 17,

Podemos hacer una macro que en la columna "H" cambie todo lo que diga día de hoy -1 (16) por el día de hoy (17)

Por ejemplo, prueba con la siguiente macro, suponiendo que en la columna "H" tienes estos archivos:

CienteA16

ClienteB16

Ejecuta la macro

Sub Cambiar_Dia()
'Por.Dante Amor
    dia_ant = Day(Date - 1)
    dia_act = Day(Date)
    Columns("H:I").Replace What:=dia_ant, Replacement:=dia_act, _
        LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
        SearchFormat:=False, ReplaceFormat:=False
End Sub

No sé qué versión tienes de enviar correos, pero por ejemplo, si tienes esta versión y la macro anterior te funciona, puedes ponerla así:

'***Macro Para enviar correos
Sub correo()
'Por.Dante Amor
    dia_ant = Day(Date - 1)
    dia_act = Day(Date)
    Columns("H:L").Replace What:=dia_ant, Replacement:=dia_act, _
        LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
        SearchFormat:=False, ReplaceFormat:=False
    '
    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

Prueba y me comentas.

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas