• 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.

nested loop...

Status
Niet open voor verdere reacties.

assessor

Gebruiker
Lid geworden
7 jan 2007
Berichten
184
Ik wil in onderstaande code elke keer dat de loop doorlopen wordt er een andere ".Body" text meegegeven.
Ik heb al van alles opgezocht over "nested loops" maar het lukt mij gewoon niet om dit voor elkaar te krijgen.


Code:
    If Range("G10").Value < 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("G5").Value
                .Body = "Text Loop 1"
                .Save
                If Dirty Then Dirty = False
            End With
    Next i
    Set outTask = Nothing
    Set outObj = Nothing

Kan iemand mij op weg helpen?
Dank.
 
Zoiets:
Code:
    If Range("G10").Value < 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
        Select Case i
            Case 0, BodyText = "Text loop 0"
            Case 1, BodyText = "Text loop 1"
            Case 2, BodyText = "Text loop 2"
            Case 3, BodyText = "Text loop 3"
            Case 4, BodyText = "Text loop 4"
            Case 5, BodyText = "Text loop 5"
        End Select
        Set outTask = outObj.CreateItem(olTaskItem)
        With outTask
            .StartDate = DateAdd("ww", -iA(i), DateValue(Range("G10")))
            .Subject = Range("G5").Value
            .Body = BodyText
            .Save
            If Dirty Then Dirty = False
        End With
    Next i
    Set outTask = Nothing
    Set outObj = Nothing
 
Laatst bewerkt:
Code:
sub M_snb()
  with CreateObject("Outlook.Application")
    For j = 1 to 6
      with .CreateItem(3)
        .StartDate = DateAdd("ww", choose(j,0,1,3,6,12,26), DateValue(Range("G10")))
        .Subject = Range("G5").Value
        .Body = "Text " & j
        .Save
      End With
    Next
  End With
Edn sub
 
@edmoor, simpel maar.... de "body" blijft nu helemaal leeg?


@snb, ziet er strak uit maar verslikt zich op de .subject regel "Object doesn't support this property or method"
en ik zie niet hoe ik mijn 6 texten kwijt moet.

mannen, houdt er even rekening mee dat ik geen VBA grootmeester ben, ik ken de basis en kan vaak een voorbeeld tot iets wat voor mij werkt verbouwen, that's it.
een beetje uitleg bij de code stel ik daarom altijd op prijs, daar leer ik van.

dank vast.
 
@edmoor, simpel maar.... de "body" blijft nu helemaal leeg?

Oeps! Fieptoutje ;)

Code:
        Select Case i
            Case 0: BodyText = "Text loop 0"
            Case 1: BodyText = "Text loop 1"
            Case 2: BodyText = "Text loop 2"
            Case 3: BodyText = "Text loop 3"
            Case 4: BodyText = "Text loop 4"
            Case 5: BodyText = "Text loop 5"
        End Select
 
Laatst bewerkt:
Ik had alle leestekens al geprobeerd in deze regel :) behalve de goeie...
Het werkt nu perfect.
Hop naar het volgende struikelblok.

Dank en een goed weekend.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan