¿Macro para mandar mail con outlook al hacer click en un Commandbutton?

Estoy terminado un macro que consiste en una secuencia de preguntas el punto es que al momento de terminar las preguntas aparece en un UserForm un CommandButton con la opción de Guardar/Enviar, resulta que al hacer click en el, se debe guardar una hoja en el escritorio con un nombre predefinido que tiene que decir "seguimiento + el mes y el año" ej " Seguimiento Octubre 2012" y por otro lado se debe mandar un mail a otro departamento donde el asunto sea exactamente igual al nombre como se guardo la hoja.

1 respuesta

Respuesta
1

Con estas instrucciones podemos enviar el correo.

Set parte1 = CreateObject("outlook.application")
Set parte2 = parte1.createitem(olmailitem)
parte2.to = Range("B" & i) 'Destinatarios
parte2.CC = Range("C" & i) 'Con copia
parte2.Subject = Range("D" & i) '"Asunto"
parte2.body = Range("E" & i) '"Cuerpo del mensaje"
ra = Range("G" & i)
Parte2. Attachments. Add ra
parte2. Send 'El correo se envía en automático

Solamente hay que adaptar los datos que se van a poner en el correo, por ejemplo, ¿de dónde vamos a tomar el correo del destinatario?

¿Va a llevar algo en el cuerpo del mensaje?

Hola Dam:

La idea es que al apretar el CommandButton pueda enviar y guardar en el escritorio a la vez, para guardar estaba utilizando este el código:

Sub SISECO1()
'definir la ruta
ruta = ThisWorkbook.Path 'ruta del libro activo
mes = Month(Date) 'mes de la fecha actual
'recorro todas las hojas a excepción de la hoja1
For Each sh In Sheets
If sh.Name <> "Hoja1" Then
nbre = "MODO PRUEBA" & mes & " de " & sh.Range("B17")
sh.Copy
Application.DisplayAlerts = False
Set wb = ActiveWorkbook 'se genera 1 libro como copia de la hoja
'por error (ya existe archivo o nbre inválido) muestra ventana para cambiar nbre o ruta
On Error Resume Next
With wb
.SaveAs ruta & "\" & nbre & ".xls" 'se guarda y cierra el libro creado
.Close True
End With
Set wb = Nothing
Application.DisplayAlerts = False
sh.Delete 'se elimina la hoja
End If
Next
Sheets("Hoja1").Select 'se vuelve a la hoja1
End Sub

y para enviar estaba utilizando este otro

Sub Botón6_Haga_clic_en()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "[email protected]"
.CC = ""
.BCC = ""
.Subject = "MODO PRUEBA"
.Body = "Éste correo ha sido creado automáticamente. Es una prueba. Un saludo"
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Lo bueno del código de guardar es que no tengo que estar colocando Path y me funciona en cualquier computador que lo quiera colocar, pero lo malo es que me cierra el libro original y me deja solo la copia al momento de guardar , ademas el nombre de guardado no es con el año, por otra parte el código para enviar el mail es también me sirve pra cualquier ordenador que quiera colocarlo, pero lo malo que no lo manda con el nombre y la fecha que necesito para enviar que debe ser en el asunto el mismo nombre con que se guardala hoja.

En resumidas cuentas lo que ando buscando es la forma de tener un código que sea para guardar con nombre "x" mas el mes en palabras y el año y envíar el mail en outlook que aparezca en el asunto el asunto el nombre en que se esta guardando la hoja.

Espero se entienda y no ser muy aprovechador.

Saludos Dam.

Puedes enviarme un archivo con ejemplos y con las macros, para juntarlas y para hacer pruebas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas