Jump to content

Archived

This topic is now archived and is closed to further replies.

juanmanuel85

ANSWERED problema enviar mail con condicional

Recommended Posts

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

Link to post
Share on other sites

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

 

Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




×
×
  • Create New...

Important Information

Privacy Policy