Taken aanmaken in Outlook via VBA in Excel

Status
Niet open voor verdere reacties.

AnnW92

Nieuwe gebruiker
Lid geworden
3 jan 2020
Berichten
4
Goedemiddag allen,

Ik ben nieuw op dit forum (en op het gebied van macro's schrijven ;) ) en ik hoop dat jullie mij op weg kunnen helpen. :)

Al enige tijd probeer ik een macro te schrijven om gegevens uit een Excel-bestand om te zetten naar taken in Outlook. Helaas dit mij tot op heden niet gelukt.
Dit is de situatie:
- In het Excel-bestand staan diverse rijen met informatie en een startdatum waarop ik actie moet gaan ondernemen.
- Voor iedere rij zou ik graag een afzonderlijke taak in Outlook creëren met als einddatum: startdatum + 3 dagen.
- Het onderwerp van de taak mag de naam van het Excelbestand zijn.
- In de taak zou ik graag een link willen plaatsen naar het bestand (staat in een SharePoint-omgeving), zodat ik snel de details van de betreffende actie/informatie kan zien. Direct de gegevens uit de cellen op die rij mag ook.

Wellicht is het nog belangrijk om te melden dat de Outlook-taken naar een gezamenlijk account gaan.
Daarnaast hoop ik dat het mogelijk is om deze macro automatisch te laten draaien, zodat wanneer ik een nieuwe regel aanmaak er direct een nieuwe taak wordt aangemaakt.

Hopelijk is mijn vraag duidelijk en ik kijk uit naar jullie reactie.

Groeten,
AnnW
 
Ik gebruik er dit voor. Dat kan je uiteraard naar wens aanpassen:
Code:
Sub Excel2Agenda()
    Set olAppl = CreateObject("Outlook.Application")
    i = 2

    Do Until Trim(Cells(i, 1).Value) = ""
        With olAppl.createitem(1)
            .Start = Cells(i, 1).Value
            .Body = Cells(i, 2).Value
            .Subject = Cells(i, 3).Value
            .Location = ""
            .Duration = 0
            .BusyStatus = 2
            .ReminderSet = True
            .ReminderMinutesBeforeStart = 720
            .Save
        End With
        i = i + 1
    Loop
    
    MsgBox "Afspraken gepland", vbInformation, "Plan afspraken"
End Sub
 
Laatst bewerkt:
Createitem
(1) = afspraak
(3) = taak
 
Ik heb na even puzzelen nu deze macro omdat ik het voorbeeld hierboven niet werkend kreeg.
Deze werkt prima, alleen lukt het mij niet om hem te koppelen aan een gedeelde takenlijst(Outlook-account). De taken verschijnen nu op mijn persoonlijke takenlijst.
Wie weet hoe ik dit kan aanpassen?

Code:
Private Sub CommandButton1_Click()

    Dim blnOutlookQuit As Boolean
    Dim lngRow As Long
    Dim objFolder As Object
    Dim objNamespace As Object
    Dim objOutlook As Object
    Dim objTask As Object

    On Error Resume Next
    Set objOutlook = GetObject(, "Outlook.Application")
    If objOutlook Is Nothing Then
        blnOutlookQuit = True
        Set objOutlook = CreateObject("Outlook.Application")
    End If
    On Error GoTo 0
    
    Set objNamespace = objOutlook.GetNamespace("MAPI")
    Set objFolder = objNamespace.GetDefaultFolder(13)
    objFolder.Display    'laat folder zien anders foutmelding door remindertime

    With Worksheets(1)
        For lngRow = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
            If Cells(lngRow, 8).Value = vbNullString Then
                Set objTask = objOutlook.CreateItem(3)
                With objTask
                    .Subject = CStr(Cells(lngRow, 2).Value)
                    .StartDate = CDate(Cells(lngRow, 4).Value)
                    .DueDate = CDate(Cells(lngRow, 5).Value)
                    .ReminderSet = CBool(Cells(lngRow, 6).Value)    'true false
                    .ReminderTime = CDate(Cells(lngRow, 5).Value)    'date and time
                    .Body = CStr(Cells(lngRow, 3).Value)
                    .Save
                End With
                Cells(lngRow, 11).NumberFormat = "@"
                Cells(lngRow, 11).Value = Format(Now(), "yyyy-MM-dd hh:mm:ss")
            End If
        Next
    End With

    If blnOutlookQuit Then
        objOutlook.Quit
    End If

    Set objTask = Nothing
    Set objFolder = Nothing
    Set objNamespace = Nothing
    Set objOutlook = Nothing

End Sub
 
Laatst bewerkt:
een gedeelde takenlijst(Outlook-account)

heeft een eigen (folder) naam. Welke ?
 
Laten we voor het gemak zeggen 123@abc.nl (Naam = 123).
Ik heb ook geprobeerd om .Recipients.Add = "123@abc.nl" te gebruiken maar dan krijg ik foutmelding 287.
 
Hieraan ontbreekt ieder gemak.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan