Hoy veremos una variante de unos artículos publicados sobre Outlook y Excel (aquí y sobre todo aquí) que servirá para contestar la duda de un lector, que planteaba cuál sería la forma de modificar una cita de un calendario de Outlook desde Excel.
La idea del asunto es poder localizar una Cita concreta, en el ejemplo siguiente la buscaremos por dos criterios frecuentes:
1. por fechas
2. por el asunto
Para luego modificar alguna de sus propiedades... aprovechando la doble característica de lectura-escritura.
Así pues, insertaremos el siguiente procedimiento en un módulo estándar:
La idea del asunto es poder localizar una Cita concreta, en el ejemplo siguiente la buscaremos por dos criterios frecuentes:
1. por fechas
2. por el asunto
Para luego modificar alguna de sus propiedades... aprovechando la doble característica de lectura-escritura.
Así pues, insertaremos el siguiente procedimiento en un módulo estándar:
Sub ModificacionCitasdeOutlook() 'petición lector: 'solo necesitaria saber como puedo hacer para que sobre escriba si una cita es duplicada o modificada. Dim olApp As Object, olNS As Object, olCalendario As Object Dim Cita As Object Dim fila As Long 'El rango de fecha de la Cita buscada... (si es que va a ser este el criterio!!). Dim FechaIni As Date, FechaFin As Date FechaIni = DateSerial(2018, 7, 10) + TimeSerial(10, 0, 0) FechaFin = DateSerial(2018, 7, 10) + TimeSerial(10, 30, 0) 'Trabajamos sobre Outlook Set olApp = CreateObject("Outlook.Application") Set olNS = olApp.GetNamespace("MAPI") 'declaramos el objeto de la carpeta de los Calendarios '(9 equivale a la carpeta del Calendario) Set olCalendario = olNS.GetDefaultFolder(9) 'Ordenamos las Citas por Fecha de Inicio Set misCitas = olCalendario.Items misCitas.Sort "[Start]", False 'recorremos todas las citas del calendario For Each Cita In misCitas 'para cambiar/modificar por fecha o por Asunto 'If Cita.Start >= FechaIni And Cita.Start <= FechaFin Then 'si el asunto es... If Cita.Subject = "Borrar-Excelforo" Then 'vemos en la ventana de inmediato el Asunto antes de la modificación Debug.Print Cita.Subject Cita.Subject = "Cambiado" 'realizamos el cambio por este nuevo asunto Cita.Save 'guardamos la cita 'y volvemos a verificar en la ventana de inmediato como ha quedado Debug.Print Cita.Subject End If Next Cita MsgBox "Cita modificada..." 'liberamos memoria Set Cita = Nothing Set olCalendario = Nothing Set olNS = Nothing Set olApp = Nothing End SubListo. Puedes comprobar que si existe esa cita, el cambio se ha realizado correctamente....