Citas en calendarios personalizados VBA

Tengo fechas de vencimiento en Excel por lo que necesito que se programen todas en un solo calendario de Outlook.

Tengo esta programación:

Sub fechasdeajustes()

Dim OLNS As Object

Dim OLAppointment As Object

On Error Resume Next

Set OLApp = GetObject(, "Outlook.Application")

If OLApp Is Nothing Then

Set OLApp = CreateObject("Outlook.Application") On Error GoTo 0

If Not OLApp Is Nothing Then

Set OLNS = OLApp.GetNamespace("MAPI")

OLNS.Logon
Set OLAppointment = OLApp.CreateItem(olAppointmentItem)

OLAppointment.Subject = Range("C2").Value 'Contrato

OLAppointment.Body = Range("D2").Value 'Descripción

OLAppointment.Date = Range("P2").Value ¿necesita algún formato en especial?

OLAppointment.Location = Range("E1").Value 'Ubicación OLAppointment.ReminderMinutesBeforeStart = Range("F1").Value 'aviso OLAppointment.display

Set OLAppointment = Nothing

Set OLNS = Nothing

Set OLApp = Nothing End If End Sub

Se que este programa es para una cita un calendario, por lo que necesito apoyo en que sea un calendario y muchas muchas citas.

1 respuesta

Respuesta
1

Para hacerlo más práctico, tus citas deberán estar, cada una de ellas, en una sola fila, en el ejemplo de la macro que me envías, tienes 2 filas C2 y E1, te sugiero manejar una sola fila.

Entonces, ¿a partir de la fila C2 y hacia abajo estarán tus citas?

En la macro que te envié el parámetro de la fecha debe ser este:

OLAppointment.Start = Range("C1").Value 'inicio ej: 08/12/2012 17:00:00 p.m.

Y el formato de la fecha es como está indicado en el ejemplo.

Si estás de acuerdo, avísame

Saludos. Dam

Es correcto mis citas estarán en filas de C2,D2,F2 hasta XX como máximo 9 fechas pero esto es para un solo contrato. Sin embargo tengo casi 80 contratos (o Citas) con fechas diferentes acomodados de la misma manera en filas. Se debe de escribir en la programación algún tipo de rango?

El formato de la fecha lo intentaré te aviso si tiene algún problema.

Gracias y saludos.

Te anexo la macro para leer varias citas.

Indicaciones el asunto debe estar en la columna C, la descripción en la columna D y la fecha en la columna F, todos los datos a partir de la fila 2 y hacia abajo.

Puedes poner tus citas de diferente contrato en la misma lista, o bien, crea un archivo por contrato, recuerda copiar el archivo con la macro.

Sub crearcitas()
'Crear citas en outlook desde excel
'Por.Dam
Const olAppointmentItem As Long = 1
Dim OLApp As Object
Dim OLNS As Object
Dim OLAppointment As Object
On Error Resume Next
For i = 2 To Range("C" & Rows.Count).End(xlUp).Row
Set OLApp = GetObject(, "Outlook.Application")
If OLApp Is Nothing Then Set OLApp = CreateObject("Outlook.Application")
On Error GoTo 0
If Not OLApp Is Nothing Then
Set OLNS = OLApp.GetNamespace("MAPI")
OLNS.Logon
Set OLAppointment = OLApp.CreateItem(olAppointmentItem)
OLAppointment.Subject = Cells(i, "C").Value 'Asunto
OLAppointment.Body = Cells(i, "D").Value 'Cuerpo
OLAppointment.Start = Cells(i, "F").Value 'inicio ej: 08/12/2012  17:00:00 p.m.
'OLAppointment.Duration = Range("D1").Value 'duración ej para hora y media: 90
'OLAppointment.Location = Range("E1").Value 'Ubicación
'OLAppointment.ReminderMinutesBeforeStart = Range("F1").Value 'aviso
OLAppointment.Save 'para guardar la cita
'OLAppointment.display 'Para mostrar la cita
Set OLAppointment = Nothing
Set OLNS = Nothing
Set OLApp = Nothing
End If
Next
End Sub

Saludos.Dam

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas