Officefull.es

Excel, word, powerpoint, android

Citas Calendarios Personalizados VBA Junio 18, 2009

 Cita Calendarios Personalizados Excel-Outlook (VBA)

Excel – Outlook

En Office Outlook podemos llegar a tener más de un Calendario, además del calendario principal que por defecto viene con la instalación de Office. Desde Office Excel podemos crearestablecer citas en éstos calendarios personalizados de una manera muy rápida, utilizando código Vba.

  • Establecer cita en calendarios personalizados Vba
  • Enlaces de Interés
  • Desarrollo

Supongamos que se han creado (sub)Calendarios en la Carpeta Calendario de Office Outlook, a los cuales hemos llamado, por ejemplo:

[ pruebas, pruebas b, pruebas c ]

Desde Office Excel, podemos establecer las citas correspondientes a cada (sub)Calendario

Citas Excel a Calendarios personalizados de Outlook

  • Columna A -Identificadores
  • Columna B – Nombres Calendarios
  • Columna C – Fechas

Desde la interfaz de Excel, abrimos Visual basic de Excel [ Alt + F11] e insertar un Módulo Estándar [menú Insertar -> Módulo ]

Por cortesía de Ken Slovak y Michael Bauer resulta lo siguiente:

El método CreateItem utiliza la carpeta principal del tipo de objeto (correo, cita, etc.) :

Set miCita = miOutlook.CreateItem(1)

Por lo que para establecer citas (ó items) en una “determinada” (sub)carpeta, seria necesario

  • Crear el objeto en la carpeta principal (según su tipo) y después “moverlo” a la (sub)carpeta específica (CreateItem)
  • Crear el objeto en la (sub)carpeta determinada por la colección <carpeta>.Items.Add (tipo) (NO por el método CreateItem)

Cómo resultado, el código usando “late binding” :

Sub Agendar_en_miCalendario() Dim miOutlook AsObject, miCalendario AsObject, miCita AsObject, _ Fila As Integer, uFila As Integer  uFila = Range("a65536").End(xlUp).Row On Error GoTo Crear Set miOutlook = GetObject(, "outlook.application") If Err = 0 ThenGoTo Creado Crear: Err.Clear Set miOutlook = CreateObject("outlook.application") Creado: On Error GoTo0 For Fila = 2 To uFila ' en la col-B se tienen los nombres de los calendarios Set miCalendario = miOutlook.Session.GetDefaultFolder(9).Folders.Item(Range("b" & Fila).Text) Set miCita = miCalendario.Items.Add(1) ' en la col-A se tienen los identificadores del recordatorio/cita miCita.Subject = "Vencimiento de: " & Range("a" & Fila).Value ' en la col-C se tienen las fechas de los vencimientos miCita.Start = "11:00 am" & Format(Range("c" & Fila).Value, "mm/dd/yyyy") miCita.End = "11:15 am" & Format(Range("c" & Fila).Value, "mm/dd/yyyy") miCita.ReminderMinutesBeforeStart = 0 ' se deja en 0 para que avise en ese momento miCita.ReminderPlaySound = True miCita.Save Next miOutlook.Quit Set miCita = Nothing Set miOutlook = Nothing End Sub

Resultado

Citas en Calendario Outlook

Si se quisiera controlar el tiempo desde la Interfaz de Excel

Citas de Excel a Outlook con Tiempo

  • Columna D – Hora Inicio
  • Columna E – Hora Fin

Cambios a realizar en el código

De esto

Determinación de Fechas – horas Vencimiento

miCita.Start = “11:00 am” & Format(Range(“c” & Fila).Value, “mm/dd/yyyy”)
miCita.End = “11:15 am” & Format(Range(“c” & Fila).Value, “mm/dd/yyyy”)

a esto

miCita.Start = Format(Range(“d” & Fila).Value, “h:mm AM/PM”) & _
Format(Range(“c” & Fila).Value, “mm/dd/yyyy”)
miCita.End = Format(Range(“e” & Fila).Value, “h:mm AM/PM”) & _
Format(Range(“c” & Fila).Value, “mm/dd/yyyy”)

Resultado

Citas Excel - Outlook

Enlaces de Interés

Crear calendarios adicionales (Office Word 2007)

http://office.microsoft.com/es-es/outlook/HP100800313082.aspx

Crear calendarios adicionales (Office Versiones anteriores)

http://office.microsoft.com/es-es/outlook/HP010222853082.aspx

Categorías: Sin categoría

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *