Mejora una macro para que sea mas dinamica

Para dante amor

Buenos días dante,

Se de tu gran ayuda y conocimientos por esto acudo a ti nuevamente, tu me ayudaste con esta macro, la idea que tengo ahora es mejorarla para que cuando abramos excel ella se ejecute automáticamente, o mejor aun que se ejecute todos los días una vez así no se abra el documento, no se si es posible, lo demás se deja como esta.

Mil gracias

Sub EnviarCorreos()
'Por.Dante amor
'Enviar por GMAIL
Dim Email As CDO.Message
'
correo = "[email protected]"
passwd = "37548758"
'
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 = "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 Mejoramiento en Salud. " & "<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 "Muy bien, por hoy ya enviaste las notificaciones pendientes"
End Sub

Mil gracias dante y perdona tanta molestia,

Mi coreo es el mismo

[email protected]

1 Respuesta

Respuesta
1

H o l a:

Pon la siguiente macro en los eventos de thisworkbook. Cada que abras el archivo se ejecutará la macro.

Private Sub Workbook_Open()
    Call EnviarCorreos
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro

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

hola dante buenas tardes, Mil gracias.

esta muy buena la solución,  y ahora si quiero que envíe el correo sin abril el exccel eso se puede. 

Puedes programar una tarea. Revisa el siguiente enlace:

Correr cada cierto tiempo de forma automática una macro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas