No se envía la invitación para reuniones en Outlook desde vba

Tengo otro inconveniente y es el ultimo para terminar mi proyecto, tengo un archivo que envía tareas a Outlook y también las envía a contactos (gracias a tu apoyo), además puedo programar mis citas, lo que quiero incluír y no he podido es enviar invitaciones a contactos para reuniones, quisiera que me asesoraras en este problema. Te pongo la macro.

Set nOutlook = CreateObject("outlook.application")
 Set myItem = nOutlook.CreateItem(olAppointmentItem)
 myItem.Subject = Range("C4").Value
 myItem.Location = UserForm2.TextBox7.Value
 myItem.Body = Range("D4").Value
 myItem.Start = Format(Range("H4").Value, "hh:mm AMPM") & _
 Format(Range("G4").Value, "mm/dd/yyyy")
 myItem.End = Format(Range("J4").Value, "hh:mm AMPM") & _
 Format(Range("I4").Value, "mm/dd/yyyy")
 Set myRequiredAttendee = myItem.Recipients.Add(Cells(1, "X").Text)
 myRequiredAttendee.Type = olRequired
MyItem. Send

Cuando reemplazo myItem. Send por myItem. Display observo que carga todos los datos correctamente en la cita, inclusive los contactos aparecen validados, pero no necesito ver esta pantalla de Outlook, lo que requiero es que se envíe directamente y el programa no lo hace.

1 respuesta

Respuesta
1

Y si pones estas 2 líneas

MyItem. Display
MyItem. Send

Prueba y me comentas

Estimado Dante, ya lo intenté y tampoco funciona, lo que noté es que ejecutando la macro paso a paso puedo llegar a myItem.Display y enseguida activar el botón "Invitar asistentes" de Outlook, después dejo correr la última instrucción. .. myItem.Send y si envía la convocatoria, esto me hace pensar que falta una instrucción antes de Send que active el botón "Invitar asistentes". Si sabes cual es, sería excelente que me compartieras esa información.

Saludos!

Después de la instrucción display pon esto:

SendKeys "%hk", True

DoEvents

Quedaría así

Set nOutlook = CreateObject("outlook.application")
Set myItem = nOutlook.CreateItem(olAppointmentItem)
myItem.Subject = Range("C4").Value
'myItem.Location = UserForm2.TextBox7.Value
myItem.Body = Range("D4").Value
'myItem.Start = Format(Range("H4").Value, "hh:mm AMPM") & _
Format(Range("G4").Value, "mm/dd/yyyy")
'myItem.End = Format(Range("J4").Value, "hh:mm AMPM") & _
Format(Range("I4").Value, "mm/dd/yyyy")
Set myRequiredAttendee = myItem.Recipients.Add(Cells(1, "X").Text)
myRequiredAttendee.Type = olRequired
myItem.Display
SendKeys "%cn", True
DoEvents
MyItem. Send

¡Gracias! Dante, aunque no funcionó la instrucción que me pusiste, me enseñaste por donde buscar y eso me motivó a investigar mucho más encontrando la solución que ¡¡funciona perfectamente!!, la instrucción o comando que me faltaba es este:                                            Application.SendKeys "%s"

Pongo la macro completa a disposición de los que necesiten algo así y le han buscado si éxito... la macro quedó así.

 Set nOutlook = CreateObject("outlook.application")
 Set myItem = nOutlook.CreateItem(olAppointmentItem)
 myItem.Subject = Range("C4").Value
 myItem.Location = UserForm2.TextBox7.Value
 myItem.Body = Range("D4").Value
 myItem.Start = Format(Range("H4").Value, "hh:mm AMPM") & _
 Format(Range("G4").Value, "mm/dd/yyyy")
 myItem.End = Format(Range("J4").Value, "hh:mm AMPM") & _
 Format(Range("I4").Value, "mm/dd/yyyy")
 Set myRequiredAttendee = myItem.Recipients.Add(Cells(1, "X").Text)
 myRequiredAttendee.Type = olRequired
 myItem.Display
 Application.SendKeys "%s"
 myItem.Send

 En verdad te agradezco la atención a mis preguntas, estamos en contacto.

Saludos!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas