Pegar rango de excel en el cuerpo de una tarea

Quiero saber si es posible, usando vba se pueda pegar un rango con formatos en el cuerpo de una tarea de outlook.

Estoy usando este código pero el rango lo pega en el campo del "asunto", espero puedas apoyarme con la solución.

Saludos y de antemano gracias.

Dim oApp As Outlook.Application
Dim tsk As Outlook.TaskItem
        Range("H22:P29").Copy
        Set oApp = GetOutlookApp
        If oApp Is Nothing Then
            MsgBox "No se puede iniciar Outlook.", vbInformation, strTitulo
            Exit Sub
        End If
        '
        Set tsk = oApp.CreateItem(olTaskItem)
        '
        With tsk
            '
            FechaHoraR = Format(Range("V2").Value, "mm/dd/yyyy") & " " & Format(Range("V3").Value, "hh:mm AMPM")
            FechaHoraI = Format(Range("V2").Value, "mm/dd/yyyy") & " " & Format(Range("V4").Value, "hh:mm AMPM")
            FechaHoraF = Format(Range("V5").Value, "mm/dd/yyyy") & " " & Format(Range("V6").Value, "hh:mm AMPM")
            '
            .Subject = "Actividades del día " & Cells(2, "W").Value
            .Status = olTaskInProgress
            .ReminderSet = True
            .StartDate = FechaHoraI 'Inicia tarea
            .ReminderTime = FechaHoraR  'Aviso
            .Body = "Actividades"
            .Importance = olImportanceNormal
            .DueDate = FechaHoraF 'Vencimiento
             . Display
             Application. SendKeys "^v"
            . Save
        End With

1 Respuesta

Respuesta
1

Fijate que en el código que ponés tenés las instrucciones

.Subject = ...

.Body = ...

Estás instrucciones hacen referencia al título del mensaje (Subject) y al cuerpo del mensaje (Body) y por lo que comentás, están justamente al revés de como lo necesitás.

El problema es que aunque estén en orden diferente no puedo pegar el rango de excel en el cuerpo de la tarea porque al activarse la ventana el cursor siempre se posiciona en el cuadro del asunto. ¿Como puedo posicionar el cursor en el cuerpo de la tarea usando código VBA?.

Saludos.

El problema que veo es que creo que vos estás queriendo pegar la tabla, pero en las tareas el cuerpo de la misma es texto común y no HTML así que lo veo complicado. Lo que te recomiendo es que pegues este rango dentro del cuerpo, directamente con la instrucción .Body como venías haciendo; podría ser algo más o menos así:

.Body = "Actividades del día " & Cells(2, "W").Value & Chr(vbKeyReturn) & Chr(vbKeyReturn)
.Body = .Body & PegaRANGO(Range("H22:P29"))

Y te quedaría armar una función auxiliar PegaRango que tome el rango y devuelva un String con el texto que quisieras pegar en el cuerpo de la tarea (luego de esto deberías eliminar la instrucción sendkeys...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas