5 taken tegelijk in agenda plaatsem

Status
Niet open voor verdere reacties.

assessor

Gebruiker
Lid geworden
7 jan 2007
Berichten
184
Ik heb vijf taken die regelmatig met dezelfde tussenpozen in de agenda geplaats moeten worden.
Tussenpozen zijn steeds gelijk maar niet van de taken onderling waardoor ik niet simpelweg de hehaalfunctie kan gebruiken.

Voorbeeld:
Taak 1: Maandag 2 mei, Taak 2 na 68 dagen, Taak 3 na 32 dagen, Taak 4 na 14 dagen en Taak 5 na 14 dagen.

Wat ik wil is de begindatun invullen en de rest met een macro invoeren.
Is dit is een te verwezelijken?

vast dank.
 
Dat is inderdaad wel te programmeren. Nu wil je daar zeker code voor hebben :).
 
@OctaFish
Dat zou wel erg mooi zijn, en als er wat commentaar bij zit leer ik er ook nog van :)
Heb er voor nu geen idee van hoe dit aan te vliegen, nooit iets met Outlook gedaan anders dan mail lezen en agenda.

...en als ik de dit vanuit Excel naar Outlook kan schieten dan is het helemaal top.
 
Laatst bewerkt:
@OctaFish

Dank voor het aanbod, zie het graag tegemoet, hieronder nog even een betere omschrijving van het “probleem”.
Wat er eigenlijk moet gebeuren is TERUG in de tijdlijn vanaf een START datum.

Datum1 = START
Datum2 = ACTIE 5 (1 week voor START)
Datum3 = ACTIE 4 (3 weken voor START)
Datum4 = ACTIE 3 (6 weken voor START)
Datum5 = ACTIE 2 (12 weken voor START)
Datum6 = ACTIE 1 (26 weken voor START)

Dit wil ik met een knop op mijn Excel “Dashboard” naar Outlook sturen.
Ik hoop dat dit het wat duidelijker maakt.

Dus eigenlijk 6 data :)
 
Dat snap ik niet helemaal; ligt die startdatum dan altijd minstens 26 weken in de toekomst?
 
We kijken niet op een dag maar ja, dat klopt. 26 weken van tevoren beginnen we met een aantal acties die voor "START" gereed moeten zijn.
De startdatum ligt vast. de actiedata kunnen een paar dagen schuiven (soms nodig om uit de weekends te blijven).
 
Laatst bewerkt:
Druk... druk.... Ik zal er vandaag naar kijken :)
 
Ok, hier een voorbeeldje dat ik heb gemaakt in Access (ik ga het natuurlijk niet in een flutpakket als Excel bouwen ;) ). Maar de structuur werkt vermoed ik ook wel met enige aanpassingen aan je eigen programma.
Code:
Dim outObj As Outlook.Application
Dim i As Integer, iA As Variant
'Datum1 = Start
'Datum2 = ACTIE 5 (1 week voor START)
'Datum3 = ACTIE 4 (3 weken voor START)
'Datum4 = ACTIE 3 (6 weken voor START)
'Datum5 = ACTIE 2 (12 weken voor START)
'Datum6 = ACTIE 1 (26 weken voor START)
    If Me.txtDatum < DateAdd("ww", 26, Date) Then Exit Sub
    iA = Array(0, 1, 3, 6, 12, 26)
    Set outobj = CreateObject("Outlook.Application")
    Dim outTask As Outlook.TaskItem
    For i = 0 To 5
        If Me.chkAddedToOutlook = False Then
            Set outTask = outobj.CreateItem(olTaskItem)
            With outTask
                .StartDate = DateAdd("ww", -iA(i), DateValue(Me.txtDatum))
                .Subject = Me.txtSubject
                .Body = Nz(Me.txtApptNotes, "")
                .Sensitivity = olPrivate
                If Me.txtReminder.Value > 0 Then
                    .ReminderMinutesBeforeStart = Nz(Me.txtApptReminderDuration, 15)
                    .ReminderSet = True
                End If
                .Save
                If Me.Dirty Then Me.Dirty = False
            End With
        End If
    Next i
    Set outTask = Nothing
    Set outobj = Nothing
 
@OktaFish
druk...druk... wat je zegt :)
Ik ga er vanmiddag vol in duiken.
 
Let even op deze regel:
Code:
        If Me.chkAddedToOutlook = False Then
Die zit in mijn db om te voorkomen dat een taak dubbel wordt toegevoegd. Zoals je in de code ziet wordt dat veld verder niet gebruikt of aangepast, dus die zou ik er nog even uithalen als ik jou was.
 
@OctaFish
Als eerste de Outlook Object Library er maar eens in gezet.
Ik weet globaal wat "Me" moet doen, weet dat het nuttig is maar kan er niet goed mee omgaan.
Na wat wijzigingen heb ik het nu gedeeltelijk werkend.
Het duurde ff voor ik er achter kwam dat ik "Tasks"aan het maken was i.p.v. "Appointments" :)
Is acheraf misschien een betere optie (onderzoek ik nog).
Het ziet er nu als volgt uit (excuseer de slordigheidjes)

Code:
Dim outObj As Outlook.Application
Dim i As Integer, iA As Variant

'Datum1 = Start
'Datum2 = ACTIE 5 (1 week voor START)
'Datum3 = ACTIE 4 (3 weken voor START)
'Datum4 = ACTIE 3 (6 weken voor START)
'Datum5 = ACTIE 2 (12 weken voor START)
'Datum6 = ACTIE 1 (26 weken voor START)
    
    
    If [COLOR="#FF0000"]Range("G10").Value[/COLOR] < DateAdd("ww", 26, Date) Then Exit Sub
    iA = Array(0, 1, 3, 6, 12, 26)
    Set outObj = CreateObject("Outlook.Application")
    Dim outTask As Outlook.TaskItem
    For i = 0 To 5
            Set outTask = outObj.CreateItem(olTaskItem)
            With outTask
                .StartDate = DateAdd("ww", -iA(i), DateValue(Range("G10")))
                .Subject = Range("G4").Value
                .Body = "Nz(Me.txtApptNotes, "")"
                .Sensitivity = olPrivate
'               If Me.txtReminder.Value > 0 Then
'                   .ReminderMinutesBeforeStart = Nz(Me.txtApptReminderDuration, 15)
'                   .ReminderSet = True
'                End If
                .Save
                If Dirty Then Dirty = False
            End With
    Next i
    Set outTask = Nothing
    Set outObj = Nothing

Me.txtDatum vervangen door Range("G10").Value (Datum 1) omdat ik niet weet hoe anders hiermee om te gaan
Ook bij de If-End If van de Reminder doet de Me mij de das om.
Kan je wat uitleggen over het gebruik van Me hier? Hoe vertel ik Me.txtDatum dat dit de waarde van cell G10 moet hebben?
Als ik eerst dit voor elkaar heb dan vraag ik mij af of het mogelijk is de verschillende takes verschillende Body en/of Subjects mee te geven.

Alle hulp welkom.
 
Laatst bewerkt:
Ik weet globaal wat "Me" moet doen, weet dat het nuttig is maar kan er niet goed mee omgaan.
...
Me.txtDatum vervangen door Range("G10").Value (Datum 1) omdat ik niet weet hoe anders hiermee om te gaan
...
Kan je wat uitleggen over het gebruik van Me hier? Hoe vertel ik Me.txtDatum dat dit de waarde van cell G10 moet hebben?
Zoals ik al in bericht #10 zei komt mijn code uit een Access database. Daar werk je doorgaans met formulieren, en daar lees je dan met Me. objecten uit. Elke keer als je Me. ziet staan, haal ik dus wat op uit het actieve formulier. In Excel werkt dat uiteraard niet, omdat je de gegevens uit een cel moet halen. Dat heb je dus correct aangepast. Overigens kun je ook in Excel formulieren maken, en dan kun je op de code die op zo'n formulier staat ook met Me. naar objecten verwijzen. In Access is dat dus een 'natuurlijke' handeling, in Excel niet.

Het duurde ff voor ik er achter kwam dat ik "Tasks"aan het maken was i.p.v. "Appointments" :)
...
Ook bij de If-End If van de Reminder doet de Me mij de das om.
Je vraag ging toch ook over Taken? Mijn oorspronkelijke code is bedoeld voor Afspraken, dus heb ik hem dan voor niets omgezet naar Taken? :)
Die Reminder lus kan volgens mij wel weg; gebruik ik ook voor afspraken en niet voor taken.

Als ik eerst dit voor elkaar heb dan vraag ik mij af of het mogelijk is de verschillende takes verschillende Body en/of Subjects mee te geven.
Dat kan natuurlijk; de taken worden in een lus aangemaakt, dus je kunt bij elke 'ronde' een ander onderwerp meegeven. Die zou je uit onder elkaar liggende cellen kunnen halen, zodat je op een simpele manier met een teller de juiste cel uitleest.
 
(1) Ik heb in het begin ook meer met Access gedaan (jij heb mij ook daar in het verleden mee geholpen) daarom kwam "Me" mij wel bekend voor.

(2) Spraakverwarring, het zijn Taken die uitgevoerd moeten worden maar de bedoeling is deze te Agenderen, dat heb ik niet helemaal duidelijk gemaakt.
De code voor het agenderen is toch anders ben ik al achter gekomen, kan je mij die ook doen toekomen dan kan ik kijken wat het beste gaat werken.

(3) De cellen met de nodige info liggen niet mooi op volgorde voor een simpele lus, ga kijken of ik dat voor elkaar krijg.

Ik leer hier ook weer een hoop van, jammer genoeg werk ik hier zo weinig mee dat ik het meeste snel weer vergeet... leeftijd :)

Vast dank weer.
.
.
.
heb het nog niet opgegeven maar een ander project tussendoor.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan