Tengo una tabla en excel de trabajo semanal, y tengo que enviar los progresos de la misma a los destinatarios de los pedidos, mediante Outlook Express. Quisiera crear con visual basic una aplicación que me mandara un texto determinado junto con las celdas A, B, C, DE a la dirección que aparece en la celda E. Cada fila en un e-mail distinto. Aunque vayan al mismo destinatario.
1 Respuesta
Respuesta de José Saúl Méndez Alonso
1
1
José Saúl Méndez Alonso, Programación Avanzada en Visual Basic, VBA, Modelo de Objetos de...
Te dejo el siguiente código Para que funcione necesitas agregar las siguientes referencias : Microsoft Outlook 12.0 Object Library que puede cambiar dependiendo de tu versión de office Microsoft Data Formatting Object Library 6.0(SP4) Public Sub SendMail() On Error GoTo Err_SendMail Dim objOutlook As Outlook.Application Dim objSession As Outlook.Namespace Dim objMessage As Outlook.MailItem Dim objRecipient As Object Dim sArchivo As String Dim sCorreo As String 'El ciclo inicia con el número de la fila For I = 1 To 10 'Depende del número de destinatarios Set objOutlook = CreateObject("Outlook.Application") Set objSession = objOutlook.GetNamespace("MAPI") Set objMessage = objOutlook.CreateItem(olMailItem) sCorreo = Range("E" & I).Value Set objRecipient = objSession.CreateRecipient(sCorreo) objSession.Logon objMessage.Recipients.Add (objRecipient) objMessage.Subject = "Asunto" objMessage.Body = "Mensaje que desaes enviar " & vbNewLine & _ Range("A" & I).Value & vbNewLine & _ Range("B" & I).Value & vbNewLine & _ Range("C" & I).Value & vbNewLine & _ Range("D" & I).Value 'La siguiente línea es por si deseas enviar algún archivo adjunto 'sArchivo = ActiveWorkbook.Path & "\" & NombreArchivo 'objMessage.Attachments.Add (sArchivo) objMessage.Send objSession.Logoff Next I 'objMessage.Display MsgBox "Mensajes enviados exitosamente!" Set objRecipient = Nothing Set objOutlook = Nothing Set objSession = Nothing Set objMessage = Nothing Exit_SendMail: Exit Sub Eerr_SendMail: MsgBox "Excepción encontrada " & Err.Description & " Originada por " & Err.Source, vbInformation, Application.Name Resume Exit_SendMail End Sub Si deseas te puedo enviar el archivo con el ejemplo
Muchísimas gracias, necesitaría el archivo, a ver si así lo veo más claro.