Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel-Termin in Outlook-Kalender VBA

Excel-Termin in Outlook-Kalender VBA
24.07.2020 15:25:35
Höna
Hallo zusammen,
ich übertrage Excel-Termine mittels VBA-Skript in einen Outlook-Kalender. Seit dem ich Outlook 2013 verwende (vorher älter) funktioniert das Skript nicht mehr. Ich erhalte den Laufzeitfehler '-2147221233 (8004010f)'.
Hat sich irgendetwas an der Struktur verändert etc.? Ich verstehe es einfach nicht.. Ich danke jeden für Ideen/Feedback.
Anbei das Skript:
Private Sub CommandButton2_Click()
Dim olApp As Outlook.Application
Dim olAppt As Outlook.AppointmentItem
Dim olFldr As Outlook.MAPIFolder
Dim z As Long
Dim found As Boolean
For z = 1 To 16000
If ActiveSheet.Cells(z, 1).Value = "Ja" And ActiveSheet.Cells(z, 2).Value = "Test" Then
found = True
Set olApp = New Outlook.Application
Set olFldr = olApp.GetNamespace("MAPI").Folders.Item("Kalender.Test").Folders.Item("Kalender") _
Set olAppt = olFldr.Items.Add
With olAppt
.Start = Format(ActiveSheet.Cells(z, 6), "dd.mm.yyyy") & " 08:00"
.allDayEvent = True
.Subject = ActiveSheet.Cells(z, 5)
.Body = ActiveSheet.Cells(z, 9) & ", " & ActiveSheet.Cells(z, 12) & ", " &  _
ActiveSheet.Cells(z, 15)
.ReminderMinutesBeforeStart = 10
.categories = "Gelbe Kategorie"
.Save
End With
MsgBox "Termine wurden an Outlook übertragen.", , "Outlook"
ActiveSheet.Cells(z, 1).Value = "OK"
Exit For
End If
If Not found Then
MsgBox "Übertragung fehlgeschlagen.", , "Fehlgeschlagen"
End If
End Sub
Gruß
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Termin in Outlook-Kalender VBA
24.07.2020 16:27:01
Herbert_Grom
Hallo,
der Code, so wie er hier steht, kann nicht funktioniert haben, da zu deinem "For z..." das "Next z" fehlt! Auch fehlt hinter dem "_" bei "Item("Kalender") _" noch etwas! Also, schau dir deinen Code noch einmal genau an und poste dann den korrekten.
Servus
AW: Excel-Termin in Outlook-Kalender VBA
24.07.2020 16:36:52
Beverly
Hi Herbert,
hinter .Item("Kalender") _ fehlt m.E. nichts, das scheint nur ein Zeilenumbruch durch die Forumssoftware zu sein. Diese Annahme wird durch die nachfolgende Leerzeile unterstützt.


Anzeige
AW: Excel-Termin in Outlook-Kalender VBA
27.07.2020 09:40:44
Höna
Hallo,
hier handelt es sich nur um einen Auszug des Skriptes.. Das next z existiert, sieht man hier nur nicht. Das Skript funktionierte jedenfalls vor dem Betriebssoftware Update einwandfrei..
Die Fehlermeldung meckert die Zeile mit dem Fehlercode '-2147221233 (8004010f)' an:
Set olFldr = olApp.GetNamespace("MAPI").Folders.Item("Special.Service.Distribo.Kalender").Folders.Item("Kalender")
Vermutlich sind die Ordner im Outlook 2013 anders strukturiert. Ich finde jedoch keinen Fehler. Der Kalender liegt im Bereich "Meine Kalender", also kein freigegebener Kalender o. a. :(
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel-Termine in Outlook-Kalender mit VBA erstellen


Schritt-für-Schritt-Anleitung

Um Excel-Termine in Outlook zu importieren, kannst Du das folgende VBA-Skript verwenden. Achte darauf, dass Du Outlook 2013 oder höher nutzt, da es hier zu Komplikationen kommen kann. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Private Sub CommandButton2_Click()
       Dim olApp As Outlook.Application
       Dim olAppt As Outlook.AppointmentItem
       Dim olFldr As Outlook.MAPIFolder
       Dim z As Long
       Dim found As Boolean
    
       For z = 1 To 16000
           If ActiveSheet.Cells(z, 1).Value = "Ja" And ActiveSheet.Cells(z, 2).Value = "Test" Then
               found = True
               Set olApp = New Outlook.Application
               Set olFldr = olApp.GetNamespace("MAPI").Folders.Item("Kalender.Test").Folders.Item("Kalender")
               Set olAppt = olFldr.Items.Add
               With olAppt
                   .Start = Format(ActiveSheet.Cells(z, 6), "dd.mm.yyyy") & " 08:00"
                   .AllDayEvent = True
                   .Subject = ActiveSheet.Cells(z, 5)
                   .Body = ActiveSheet.Cells(z, 9) & ", " & ActiveSheet.Cells(z, 12) & ", " & ActiveSheet.Cells(z, 15)
                   .ReminderMinutesBeforeStart = 10
                   .Categories = "Gelbe Kategorie"
                   .Save
               End With
               MsgBox "Termine wurden an Outlook übertragen.", , "Outlook"
               ActiveSheet.Cells(z, 1).Value = "OK"
               Exit For
           End If
       Next z
    
       If Not found Then
           MsgBox "Übertragung fehlgeschlagen.", , "Fehlgeschlagen"
       End If
    End Sub
  4. Stelle sicher, dass die entsprechenden Daten in den Zellen vorhanden sind, bevor Du das Skript ausführst.


Häufige Fehler und Lösungen

  • Fehlercode -2147221233 (8004010f): Dieser Fehler tritt häufig auf, wenn der angegebene Ordner nicht gefunden werden kann. Überprüfe die Struktur Deiner Outlook-Ordner und stelle sicher, dass der Kalender korrekt benannt ist.

  • Fehlendes Next z: Achte darauf, dass der Next z Befehl am Ende der Schleife steht. Dies könnte zu einem Laufzeitfehler führen.

  • Ordnerstruktur: Wenn Du von einer älteren Outlook-Version auf 2013 oder höher wechselst, kann sich die Ordnerstruktur geändert haben. Stelle sicher, dass die Ordner in Deinem VBA-Code mit der aktuellen Struktur übereinstimmen.


Alternative Methoden

Falls Du die VBA-Methode bevorzugst, gibt es auch andere Möglichkeiten, Termine aus Excel in Outlook zu importieren:

  • Power Automate: Mit Microsoft Power Automate kannst Du automatisierte Workflows erstellen, um Excel-Daten in Outlook-Termine zu konvertieren.
  • Excel-Add-Ins: Es gibt verschiedene Add-Ins, die die Integration zwischen Excel und Outlook erleichtern.

Praktische Beispiele

Hier sind einige Beispiele, wie Du Excel-Termine in Outlook importieren kannst:

  • Einmalige Termine: Nutze das Skript, um einmalige Termine zu erstellen, indem Du in Excel die entsprechenden Daten eingibst.
  • Wiederkehrende Termine: Du kannst das Skript anpassen, um auch wiederkehrende Termine zu erstellen, indem Du die .RecurrencePattern-Eigenschaft des AppointmentItem-Objektes verwendest.

Tipps für Profis

  • Debugging: Verwende Debug.Print in Deinem Code, um die Werte der Variablen zu überprüfen, falls etwas nicht funktioniert.

  • Fehlerbehandlung: Implementiere Fehlerbehandlung, um sicherzustellen, dass das Skript auch bei unerwarteten Fehlern stabil bleibt. Beispiel:

    On Error GoTo ErrorHandler
    ' Dein Code hier
    Exit Sub
    ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Testumgebung: Teste Dein Skript zunächst mit einer kleinen Anzahl von Terminen, bevor Du es in großem Umfang verwendest.


FAQ: Häufige Fragen

1. Wie kann ich die Ordnerstruktur in Outlook überprüfen?
Du kannst die Ordnerstruktur in Outlook öffnen und die Namen der Ordner manuell überprüfen, um sicherzustellen, dass sie mit den im Skript verwendeten Bezeichnungen übereinstimmen.

2. Funktioniert das Skript auch in älteren Excel-Versionen?
Das Skript sollte in den meisten modernen Excel-Versionen ab 2010 funktionieren, solange die Outlook-Integration vorhanden ist. Bei älteren Versionen kann es zu Anpassungen kommen.

3. Was tun, wenn mein Outlook nicht reagiert?
Wenn Outlook nicht reagiert, überprüfe, ob es Updates gibt, und stelle sicher, dass alle Add-Ins deaktiviert sind, die Konflikte verursachen könnten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige