262 Aufrufe
Gefragt in Tabellenkalkulation von

Hallo,

ich habe das Problem, dass ich im excel eine einfache Liste habe mit den Spalten

A - Betreff
B - Datum mit Uhrzeit (09.01.2024 08:00)
C - Teilnehmer (Mailadresse)

Ich möchte solange in Spalte A Einträge vorhanden sind, diese in Outlook erstellen lassen, jedoch macht er mir nur den letzten Eintrag.
Wie muss ich die Schleife setzen, damit es klappt?

Sub TermineInOutlookEintragen()
Dim oApp As New Outlook.Application
Dim oTermin As Outlook.AppointmentItem
Set oTermin = oApp.CreateItem(olAppointmentItem)
Dim wsData As Worksheet
Set wsData = ThisWorkbook.ActiveSheet           'oder ActiveWorkbook.Sheets("Tabelle1")
LastRowA = wsData.Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To LastRowA Step 1
With oTermin
    .Subject = Tabelle1.Cells(i, 1).Value
    .RequiredAttendees = Tabelle1.Cells(i, 3).Value
    .Start = Tabelle1.Cells(i, 2).Value
    .Duration = 90
    .Body = "Arbeit XY machen"
    .Save
End With
Next i
Set oApp = Nothing
Set oTermin = Nothing
End Sub

Danke für eure Hilfe im Voraus!
Gruß

Bert

7 Antworten

0 Punkte
Beantwortet von vbastler Mitglied (228 Punkte)

Moin Bert,

ungetestet: 

1.)  For .. "Step 1" kannst Du weglassen. Die Step-Anweisung brauchst Du nur wenn abweichend von +1, z.B. Step 2 oder Step -1

2. Schiebe die Zeile Set oTermin = Nothing innerhalb der Schleife. dann sollte es klappen. So bleibt oTermin immer nur mit dem ersten Wert gefüllt.

Grüße

0 Punkte
Beantwortet von
Hallo vbastler,

ich habe "Set oTermin = Nothing" jetzt innerhalb der Schleife, also vor "next i" stehen und er hängt sich dabei auf mit Laufzeitfehler 91.
+1 Punkt
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Bert,

wenn ich das richtig verstehe willst du doch für jede Zeile im Tabellenlatt einen neuen Termin erstellen - oder? Müsste dann die Zeile Set oTermin = oApp.CreateItem(olAppointmentItem) nicht am Anfang innerhalb der For-Next-Schleife stehen?

Bis später, Karin

0 Punkte
Beantwortet von vbastler Mitglied (228 Punkte)
Bearbeitet von vbastler
Dank an Beverly! Was ich unten vermutet hatte, hast Du oben erwischt.

Moin Bert, versuch's mal mit diesem Code im nächsten Post. Der ist getestet.

Grüße
0 Punkte
Beantwortet von vbastler Mitglied (228 Punkte)
ausgewählt von mickey
 
Beste Antwort

Schau mal hier.

Ich habe den Code etwas aufgeräumt, mit der Option Explicit versehen und hole alle Inhalte aus der 5-spaltigen Datentabelle.

Grüße

0 Punkte
Beantwortet von
wow, Danke vbastler!
so funktioniert das wunderbar.
Danke auch dir Karin für deinen Input!
Liebe Grüße
Bert
0 Punkte
Beantwortet von vbastler Mitglied (228 Punkte)

aber gerne doch!smiley

...