Tengo un problema con una macro en excel

para "Por.Dante Amor"

Buenas tardes, acudo nuevamente a tu ayuda para este problema con la macro que me estas ayudando a consolidar, en la macro que tenemos ella esta buscando la información de la columna "K" y la envía al correo electrónico, pero como es una sabana grande necesito que ella ademas verifique lo que esta en las columnas ( K, N, Q, T, W, Z. AC, AF, AI, AL, AO, AR)

Y envíe también el coreo, otro problema que tengo es que como ella verifica cuantos días faltan, y el rango que tenemos es menores de siete días para que envíe el correo, ella le sigue enviando a los que ya cumplieron, es decir a los menos uno, menos dos, entonces en lo posible que estandaricemos que le envíe a los días ( 8,7,6,5,4,3,2,1)

Mil gracias.

Envio el codigo que me ayudaste a elaborar

Sub EnviarCorreos()
'Por.Dante Amor
'Enviar por GMAIL
Dim Email As CDO.Message
'
correo = "[email protected]"
passwd = "37548758"
'
For i = 11 To Range("K" & Rows.Count).End(xlUp).Row
If Not IsError(Cells(i, "K")) Then
If Cells(i, "K") <= 7 Then
Set Email = New CDO.Message
Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = CLng(465)
.Item("http://schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1)
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = correo
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = passwd
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
End With
With Email
.To = Cells(i, "F")
.From = correo
.Subject = " Aviso de informes pendientes"
.HTMLBody = "Apreciado colaborador. " & "<br> <br>" & _
"Nos permitimos notificarle que el plazo establecido " & _
"para enviar el informe que esta bajo su responsabilidad " & _
"es de menos de ocho días. " & "<br> <br>" & _
"No olvide consultar su tablero de mando. Este es un mensaje " & _
"de la Dirección de Planeación y Calidad. " & "<br> <br> <b>" & _
"Trabajamos Unidos por la Salud de Santander."
.Configuration.Fields.Update
On Error Resume Next
.Send
End With
If Err.Number = 0 Then
'MsgBox "Hoja Guardarda y enviada por Outlook", vbInformation, "CREAR CARPETA Y GUARDAR HOJA"
Else
'MsgBox "Se produjo el siguiente error: " & Err.Number & " " & Err.Description
End If
Set Email = Nothing
End If
End If
Next
MsgBox "ACABAS DE ENVIAR LA NOTIFICACION"
End Sub

Respuesta
3

H o l a:

Quieres que verifique en estas columnas:

K, N, Q, T, W, Z. AC, AF, AI, AL, AO, AR

Pero si más de una tiene 7 o menor a siete, qué debe hacer, enviar únicamente un correo o enviar varios correos.

la idea es que cuando verifique en esas columnas K, N, Q, T, W, Z. AC, AF, AI, AL, AO, AR envíe correos, generalmente van a ser a personas distintas, lo importante es que envíe cuando  sean los días 8,7,6,5,4,3,2,1 los otros no, por que es que el indicador sigue corriendo ejemplo  - 1-2-3  esto por que no se como ajustarlo para que cuando llegue a cero pare y según las pruebas que realice el siguen enviando y es lógico, por que le tenemos que cuando sea < =7

mil gracias por su ayuda

No entendí.

Te lo pregunto nuevamente.

Si en la columna K tengo un 7 qué hago, envío un correo.

Pero si en la misma fila en la columna N también tengo un 7, también envío un correo, es decir, ¿voy a enviar 2 correos con la misma fila? Responde SI o NO.

Si señor, el debe enviar correo a todos los que estén menor a ocho, hasta el día 1

Te anexo la macro

Sub EnviarCorreos()
'Por.Dante Amor
    'Enviar por GMAIL
    Dim Email As CDO.Message
    '
    correo = "[email protected]"
    passwd = "tupassword"
    '
    cols = Array("K", "N", "Q", "T", "W", "Z", "AC", "AF", "AI", "AL", "AO", "AR")
    For i = 11 To Range("K" & Rows.Count).End(xlUp).Row
        For j = LBound(cols) To UBound(cols)
            If Not IsError(Cells(i, cols(j))) Then
                If Cells(i, cols(j)) >= 1 And Cells(i, cols(j)) <= 7 Then
                    Set Email = New CDO.Message
                    Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
                    Email.Configuration.Fields(cdoSendUsingMethod) = 2
                    With Email.Configuration.Fields
                        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = CLng(465)
                        .Item("http://schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1)
                        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
                        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = correo
                        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = passwd
                        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
                    End With
                    With Email
                        .To = Cells(i, "F")
                        .From = correo
                        .Subject = "Asunto del correo"
                        .HTMLBody = "Apreciado colaborador. " & "<br> <br>" & _
                                   "Nos permitimos notificarle que el plazo establecido " & _
                                   "para enviar el informe que esta bajo su responsabilidad " & _
                                   "es de menos de ocho días. " & "<br> <br>" & _
                                   "No olvide consultar su tablero de mando. Este es un mensaje " & _
                                   "de la Dirección de Planeación y Calidad. " & "<br> <br> <b>" & _
                                   "Trabajamos Unidos por la Salud de Santander."
                        .Configuration.Fields.Update
                        On Error Resume Next
                        .Send
                    End With
                    If Err.Number = 0 Then
                        'MsgBox "Hoja Guardarda y enviada por Outlook", vbInformation, "CREAR CARPETA Y GUARDAR HOJA"
                    Else
                        'MsgBox "Se produjo el siguiente error: " & Err.Number & " " & Err.Description
                    End If
                    Set Email = Nothing
                End If
            End If
        Next
    Next
    MsgBox "Fin"
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas