.
Es necesario hacer algunas consideraciones sobre la configuración de la PC; primero, para que funcione, el envío de mails, se debe agregar una referencia en el Editor de Visual Basic que es Microsoft CDO for Windows 2000 Library, haciendo click en la imagen siguiente, se podrá observar con más lujos de detalle, la referencia que se debe agregar para que se puedan envíar mails desde Excel.
Bien configurado esto, viene el otro paso para que se puedan enviar mails con Excel y no salte error; la función que envía mail está por defecto configurada para Gmail, no obstante se agrega en forma de comentario ( ‘ apostrofe), el servidor Smtp de Yahoo y Hotmail, que son los correos más populares, si no se tiene estos correos, se puede probar con otros y configurar servidor Smtp y el puerto de salida, lo cual dejaría enviar mails y no daría errores.
El servidor Smtp de Google es «smtp.gmail.com»; el de Hotmail es «smtp.live.com» y el de Yahoo es: «out.izymail.com»; en el caso que se tuviera una modificación, se debe buscar en google cual es el servidor smpt y puerto del correo que estemos usando.
Una vez finalizado el paso anterior, se deben realizar otras modificaciones y de esta manera estar condiciones de enviar mails, se debe colocar el nombre de usuario y clave del correo que envía los mails; como así también cual es el mail de origen, cual el de destino. Seguidamente se muestra los códigos utilizados.
El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar Excel con Access y muchos ejemplos más.
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
Call Aviso
End Sub
Código que se inserta en un módulo
Sub Aviso()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
If Sheets(«Ejecu»).Cells(5, 6).Value – 10 = Date Then
sm = SendMail_mail()
End If
Application.DisplayAlerts = False
Application.ScreenUpdating = True
End Sub
Código que se inserta en un módulo
Function SendMail_mail() As Boolean
‘Dimensiono variables
Dim Email As CDO.Message
Dim Autentificion As Boolean‘Creo el objeto email
Set Email = New CDO.Message
‘Ponemos datos del servidor a usar
Email.Configuration.Fields(cdoSMTPServer) = «smtp.gmail.com» ‘Gmail
‘Email.Configuration.Fields(cdoSMTPServer) = «smtp.live.com» ‘hotmail
‘Email.Configuration.Fields(cdoSMTPServer) = «out.izymail.com» ‘yahoo
Email.Configuration.Fields(cdoSendUsingMethod) = 2
‘Indicamos el número de puerto smtp
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(465) ‘gmail
‘Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(25) ‘hotmail
‘Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(25) ‘yahoo
‘Decimos si requiere o no autentificación 1 requiere, 0 no requiere
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/» & «configuration/smtpauthenticate») = Abs(1)
‘Segundos de espera
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout») = 30
‘Definición de verdadero para la autentificación
Autentificacion = True
‘Configuramos el ingreso al mail
If Autentificacion Then
‘nombre de usuario
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername») = «mimail@gmail.com»
‘password
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword») = «miclave»
‘si el servidor utiliza SSL (secure socket layer). en gmail: True
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl») = True
End If
‘ Una vez configurado nuestro servidor de correo tomados datos de excel para enviar el mail
‘Correo del destinatario
Email.To = «emaildestino@yahoo.com»
‘Dirección del remitente
Email.From = «emailremitente@gmail.com»
‘ Asunto
Email.Subject = msj
‘ Mensaje
Email.TextBody = «Faltan pocos días hasta la fecha de realización de » & msj
‘Actualizamos datos antes del envio
Email.Configuration.Fields.Update
‘Controlo errores
On Error Resume Next
‘enviamos propiamente el mail
Email.Send
‘Si no hay errores la funcion es verdadero
If Err.Number = 0 Then
SendMail_Gmail = True
Else
‘Sale msgbox con descripción del error
MsgBox «Se produjo el siguiente error: » & Err.Description, vbCritical, «Error nro » & Err.Number
End If
‘Borro los objetos
If Not Email Is Nothing Then
Set Email = Nothing
End If
‘Controlo errores
On Error GoTo 0
End Function
‘Dimensiono variables
Dim Email As CDO.Message
Dim Autentificion As Boolean
‘Creo el objeto email
Set Email = New CDO.Message
‘Ponemos datos del servidor a usar
Email.Configuration.Fields(cdoSMTPServer) = «smtp.gmail.com» ‘Gmail
‘Email.Configuration.Fields(cdoSMTPServer) = «smtp.live.com» ‘hotmail
‘Email.Configuration.Fields(cdoSMTPServer) = «out.izymail.com» ‘yahoo
Email.Configuration.Fields(cdoSendUsingMethod) = 2
‘Indicamos el número de puerto smtp
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(465) ‘gmail
‘Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(25) ‘hotmail
‘Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport») = CLng(25) ‘yahoo
‘Decimos si requiere o no autentificación 1 requiere, 0 no requiere
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/» & «configuration/smtpauthenticate») = Abs(1)
‘Segundos de espera
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout») = 30
‘Definición de verdadero para la autentificación
Autentificacion = True
‘Configuramos el ingreso al mail
If Autentificacion Then
‘nombre de usuario
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername») = «mimail@gmail.com»
‘password
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword») = «miclave»
‘si el servidor utiliza SSL (secure socket layer). en gmail: True
Email.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl») = True
End If
‘ Una vez configurado nuestro servidor de correo tomados datos de excel para enviar el mail
‘Correo del destinatario
Email.To = «emaildestino@yahoo.com»
‘Dirección del remitente
Email.From = «emailremitente@gmail.com»
‘ Asunto
Email.Subject = msj
‘ Mensaje
Email.TextBody = «Faltan pocos días hasta la fecha de realización de » & msj
‘Actualizamos datos antes del envio
Email.Configuration.Fields.Update
‘Controlo errores
On Error Resume Next
‘enviamos propiamente el mail
Email.Send
‘Si no hay errores la funcion es verdadero
If Err.Number = 0 Then
SendMail_Gmail = True
Else
‘Sale msgbox con descripción del error
MsgBox «Se produjo el siguiente error: » & Err.Description, vbCritical, «Error nro » & Err.Number
End If
‘Borro los objetos
If Not Email Is Nothing Then
Set Email = Nothing
End If
‘Controlo errores
On Error GoTo 0
End Function
Otros post de utilidad:
- Recuperar password de hoja bloqueada
- Función BUSCARV
- Función BUSCARH
- Función SI
- Abre explorador de archivo de Windows e inserta foto
- Abre explorador de archivo de Windows
- Combobox suma datos repetidos
- Busca un dato en todas las hojas de excel
- Combobox incrustado en Excel
- Formulario para insertar datos en hoja de excel
- Formulario de alera y envío de mail
- Tutoriales sobre VBA
- Llenar combobox y buscar datos
- Mensaje de Alerta y envío de mail con Excel
- Combobox que lista hojas de excel y las selecciona
- Busca un dato en todas las hojas de excel
.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends