Saltar al contenido

problema enviar mail con condicional


Recommended Posts

publicado

Que tal, 

les cuento mi problema:

Tengo una macro que envia correos a una columna determinada, gracias a la ayuda de los chicos del foro al agregarle la funcion "specialcells(2) inclusive puedo enviar correo aunque no esten todas las celdas completas... ( ejemplo en el archivo"FUNCIONA BIEN SIN CONDICIONAL")

Agrege una hoja al archivo ("datos ")para hacer una condicion en la que si el estado del usuario es VENCIDO, figure un email en esa columna,sino " "... y ahora me sale un mensaje de error 1004 "NO SE ENCONTRARON CELDAS" al apretar el boton en la pestaña CORREO.

adjunto los dos archivos el que anda bienj sin condicional y el que estoy teniendo problemas, yo necesitaria que figuren solo los datos de la gente que aparece como VENCIDO en la hoja DATOS, y que la macro me lo pueda enviar aunque haya celdas en blanco en esa columna , por que pasa esto? claramente el problema surgio al agregarle la condicion pero no se porq.

Gracias y saludos

 

CON CONDICIONAL.xlsm FUNCIONA BIEN SIN CONDICONAL.xlsm

publicado

@Antoni gracias por tu respuesta;

Si hay celdas vacias, la de los clientes que no estan vencidos, pero se suponia que les llegaria igual a las direcciones que si figuran vencidas con el agregado de SpecialCells al rango en la macro no? Como puedo arreglar este problema? 

publicado

El tipo 2 de SpecialCells corresponde a valores fijos y tus celdas son el resultado de una fórmula, por lo que no seleccionan.

Te dejo la macro preparada para cualquier número de filas.

' Declaramos variables
'
Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.MailItem
Dim cell As Range
Dim Asunto As String
Dim Correo As String
Dim Destinatario As String
Dim Saldo As String
Dim Msg As String
    '
    Set OutlookApp = New Outlook.Application
    '
    'Recorremos la columna EMAIL
    'Desde la celda B11 hasta el final
    For Each cell In Range("B11:B" & Range("B" & Rows.Count).End(xlUp).Row)
        '
        'Asignamos valor a las variables
        '
        If cell Like "*@*" Then 'Comprobamos si es una dirección de correo
            Asunto = "Saldo vencido"
            Destinatario = cell.Offset(0, -1).Value
            Correo = cell.Value
            Saldo = Format(cell.Offset(0, 1).Value, "$#,##0")
            FechaVencimiento = Format(cell.Offset(0, 2).Value, "dd/mmm/yyyy")
            '
            'Cuerpo del mensaje
            '
            Msg = "Apreciable " & Destinatario & vbNewLine & vbNewLine
            Msg = Msg & "Queremos informarle que su fecha de pago venció el día "
            Msg = Msg & FechaVencimiento & "." & vbNewLine & vbNewLine
            Msg = Msg & "El saldo que debe liquidar es "
            Msg = Msg & Saldo & vbNewLine & vbNewLine
            Msg = Msg & "Atentamente:" & vbNewLine
            Msg = Msg & "Tarjetas de crédito."
            '
            Set MItem = OutlookApp.CreateItem(olMailItem)
            With MItem
                .To = Correo
                .Subject = Asunto
                .Body = Msg
                '.Send
                '
            End With
       End If
            '
    Next
    '
End Sub

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.