• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

met VBA Excel lijst in Outlook collega diverse Taken aanmaken geautomatiseerd

Status
Niet open voor verdere reacties.

JMW1975

Gebruiker
Lid geworden
6 okt 2014
Berichten
7
Beste VBA Kenners,

Ik heb wat hulp nodig, ik kom een heel eind maar loop nu erg vast. hopelijk kunnen jullie als doorgewinterde VBA-ers mij een zetje de goede richting in geven.

Mijn doel van dit kleine programmeerprojectje is dat ik vanuit een lijst met offertes, bedrijfsnamen, offerte data en genomen opvolg acties
automatisch via VBA in de takenlijst in de Outlook van collega's taken wil genereren.

De onderstaande code werkt voor 1 item (excel regel).

Omdat het een lijst is met diverse regels heb ik een Loop aangemaakt (met behulp van wat gegoogle) om de lijst te door lopen.
In principe werkt de Loop, alleen niet op de manier zoals bedoeld.

Hiervoor is wat uitleg benodigd.
Met de actie .Display (om te zien wat er gebeurd) geactiveerd wordt er een nieuwe Taak window geopend en deze wordt prachtig ingevuld. Alleen de Loop wordt binnen deze ene geopende Taak window doorlopen, alle voorgaande input wordt overschreven en pas bij het laatste item (lees Excel regel) stopt het vullen/wijzen van de input. De geadresseerde regel wordt gevuld met steeds het zelfde mailadres, terwijl het overige wordt gevuld zoals het in de excel regel is aangegeven.

Het Taakwindow sluit niet en er komt geen verdere (fout)melding.

Wanneer de actie .Send (zoals uiteindelijk ook de bedoeling is) wordt geactiveerd wordt het programma doorlopen maar met de foutmelding "Fout -2147467259 (80004005) U kunt de taak " Bedrijf x" niet toewijzen, omdat u niet de eigenaar van de taak bent.
bij "foutopsporing" wordt .assign aangegeven als waar de fout optreedt. De taak van het eerste bedrijf in de Excel regel wordt wel aangemaakt bij de betreffende collega in Outlook. Doch deze moet handmatig toestemming geven voor om de taak op te nemen in zijn lijst.

Het is juist de bedoeling dat de taken "Silent" bij de collega's in Outlook moeten komen, zonder dat deze een handeling hoeven te verrichten. maar ik heb nog geen idee hoe ik dat voor elkaar moet krijgen.

Ik hoop dat jullie mij hiermee kunnen helpen.
alvast bedankt voor de genomen moeite

Dit is de VBA code tot dusver:

Code:
Sub SetTaskItemTask()
    Dim myTaskAssignment As TaskItem
    Sheets("Offerte overzicht").Select
    On Error GoTo Err_Execute
    
    Dim i As Long
    On Error Resume Next
    
    Set myTaskAssignment = CreateObject("Outlook.Application").CreateItem(olTaskItem)
     
    On Error GoTo 0
    
    i = 2
    Do Until Trim(Cells(i, 1).Value) = ""
    
    With myTaskAssignment
        .Assign
        .Recipients.Add Name:="collega@domain.com"
        .Subject = Cells(i, 5)
            If Cells(i, 15).Value = "" Then
            .StartDate = Cells(i, 9)
            Else: .StartDate = Cells(i, 15)
            End If
            If Cells(i, 15).Value = "" Then
            .DueDate = .StartDate + 90
            Else: .DueDate = .StartDate + Cells(i, 16)
            End If
        '.DueDate = .StartDate + Cells(i, 16)
        .ReminderTime = .DueDate - 1
        .Body = Cells(i, 11)
        '.Display
        .Send
    End With
    
    i = i + 1
    Loop
    
    Exit Sub

Err_Execute:
MsgBox "Er is een fout ontstaan! - Exporteren Excel items naar Outlook Taken."

End Sub

Update: vraag ook gepost op MrExcel.com
 
Laatst bewerkt:
Gebruik svp code-markeringen (VBA-tags) in je bericht.
 
Gebruik eens (.save) i.p.v. (.send).

Ik kan het ook alleen maar bij mezelf testen, en niet naar een ander, dus misschien werkt het niet met .save naar anderen toe.
 
@HSV De .save optie heb ik ook geprobeerd, maakt voor de uitvoering helaas geen verschil.

Toch nog even geprobeerd voor de zekerheid, maar helaas.

Dank voor de suggestie :D:thumb:
 
Zoiets had ik al verwacht.
Naar mijn eigen Outlook werkt het goed met .save, en worden er meerdere taken toegevoegd.
Maar verder niemand die hier Outlook gebruikt.

Ook ik krijg hier dezelfde foutmelding met .send als jij.
 
@HSV ja idd het werkt prima lokaal maar niet richting andere acounts.

@snb Dank je voor de link. Ik ga er eens goed door neuzen. Wat ik zo in eerste instantie zag lijkt zeer geschikt voor lokaal verhaal. Hopelijk vind ik nog wat mijn situatie.
 
Zou dit hem moeten zijn?
Ik kan enkel ontdekken dat... ".Recipients.Add c03" iets lager in de code staat.
Code:
Sub taakverzoek_nieuw()
c00 = "controle 7"
 c01 = Date + 7
 c02 = DateValue("04-05-2019") + TimeValue("08:00:00")
 c03 = "[EMAIL="snb@forums.eu"]snb@forums.eu[/EMAIL]"
 With CreateObject("Outlook.Application").CreateItem(3)
.assign
 .Subject = c00
 .StartDate = c01
 .ReminderSet = True
 .ReminderTime = c02
 .Recipients.Add c03
 .send
End With
End Sub
 
Ik zal het zeker even proberen. Ik had ook lopen goochelen met de volgorde. Maar nog niet in deze volgorde.

Ik vermoed dat het met de Loop te maken heeft dat het niet werkt. Omdat 1 enkel item wel zonder problemen werkt.
 
Om je vermoeden te testen, probeer dan eens VBA te vertragen zodat de server de tijd krijgt om zijn werk te doen

Code:
Public Sub g_sVertraagVBA(lngSeconds As Long)
Dim datEndTime As Date
  datEndTime = DateAdd("s", lngSeconds, Now())
  Do While Now() < datEndTime
      DoEvents
  Loop
End Sub

Gr. Mirjam
 
Heb je wel een lus nodig ?

Code:
.recipients.add "snb@rorum.eu;bb@gmail.com;extra"
 
Excuses voor de late reactie op jullie suggesties. ik heb mijn programmeer projecten wegens drukte even moeten laten rusten.

De loop is nodig om door de lijst van taken te lopen. In principe is er voor als nog maar 1 mail adres (gedeelde agenda) dat wordt gebruikt. Het is de bedoeling dat uiteindelijk specifieke taken worden toebedeeld aan specifieke collega's. Dus 1 taak per gedeelde agenda en de taak kom niet in meerdere agenda's

@Mirjam: waar plaats ik de code voor jouw Loop vertrager? ik neem aan dat die bij het initialiseren van het werkblad mee moet worden genomen?
@HSV: De volgorde voor .recipients.add heeft geen effect, iig niet merkbaar.

Wellicht mss nog niet duidelijk aangegeven:
De agenda van de collega waar de taak in dient te komen is een gedeelde agenda waar ik rechten heb om te:
- lezen
- schrijven
- wijzigen
- verwijderen

wellicht dat dit nog mogelijkheden bied, want volgens mij wordt door de code de betreffende agenda nu benaderd als een NIET- gedeelde agenda. (maar ik weet niet of dit nog enig verschil maakt)



groeten
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan