Office: Ausgewählte Excel Termine per VBA in Outlook importieren

Helfe beim Thema Ausgewählte Excel Termine per VBA in Outlook importieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, ich habe ein merkwürdiges Problem und finde den Fehler nicht... Ich habe in einer Exceldatei Termine gespeichert, die ich in einen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von rocknrolli, 19. Juni 2023.

  1. Ausgewählte Excel Termine per VBA in Outlook importieren


    Hallo Forum,

    ich habe ein merkwürdiges Problem und finde den Fehler nicht...

    Ich habe in einer Exceldatei Termine gespeichert, die ich in einen Outlook Kalender importieren möchte.
    Dies sind mal die Spaltenüberschriften:
    Betreff | Beginnt am | Beginnt um | Beginn Datum + Zeit | Endet am | Endet um | Ende Datum + Zeit | Ganztägiges Ereignis | Beschreibung | Ort

    Die Spalten Beginn Datum + Zeit sowie Ende Datum + Zeit werden für den Import verwendet und haben folgendes Format: dd.mm.yy hh:mm.

    Ich hab die Tabelle nach den Juli-Terminen 2023 gefiltert - das sind insgesamt 11 Einträge.

    Mit dem folgenden Code möchte ich die Tabelle durchgehen und die Termine in meinem Defaultkalender speichern:
    Code:
    Sub Outlook_Termin_Import()
    
    'Outlook Bibbliotheken aktivieren
    'Menue Extras --> Verweise --> Microsoft Outlook xx.x Object Library
     
    'Variablen dimensionieren
    Dim oApp As New Outlook.Application
    Dim oNamespace As Outlook.Namespace
    Dim oEmpfaenger As Outlook.Recipient
    
    Dim sEmpfaengername As String           'Gewaehlter Outlook-Kalendername
    Dim oOrdner As Outlook.Folder           'Gewaehlter Outlook-Ordner
    Dim oTermin As Outlook.AppointmentItem  'Termin, der aus Excel in Outlook übernommen werden soll
     
    Dim rFilter As Range            'Variable, um den gefilterten Bereich zu durchgehen
    Dim rFilterposition As Range    'Variable, um den gefilterten Bereich zu durchgehen
     
    'Namespace fuer Outlook Kalender (MAPI-Dateien) erstellen
    Set oNamespace = oApp.GetNamespace("MAPI")
     
    
    Set oEmpfaenger = oNamespace.CreateRecipient("xy")
        
    oEmpfaenger.Resolve
     
    'Pruefen, ob Empfaenger gefunden wurde
    If oEmpfaenger.Resolved = False Then
     
        'Benutzer benachrichtigen
        MsgBox "Der Kalender wurde nicht gefunden", vbCritical, "Fehler"
     
        'Prozedur beenden
        Exit Sub
    End If
    
    Set oOrdner = oNamespace.GetSharedDefaultFolder(oEmpfaenger, olFolderCalendar)
    
    'Filterbereich zuweisen
    Set rFilter = Range("A2:A500").SpecialCells(xlCellTypeVisible)
    
    'Termin erstellen
    For Each rFilterposition In rFilter
     
        Set oTermin = oOrdner.Items.Add(olAppointmentItem)
     
        With oTermin
            .Subject = Tabelle2.Cells(rFilterposition.Row, 1).Value
            .Start = Tabelle2.Cells(rFilterposition.Row, 4).Value
            .End = Tabelle2.Cells(rFilterposition.Row, 7).Value
            .AllDayEvent = Tabelle2.Cells(rFilterposition.Row, 8).Value
            .Body = Tabelle2.Cells(rFilterposition.Row, 9).Value
            .Location = Tabelle2.Cells(rFilterposition.Row, 10).Value
            .Save
        End With
     
        Next rFilterposition
     
    'Variablen leeren
    Set oApp = Nothing
    Set oTermin = Nothing
     
    End Sub
    Damit lande ich in einer Endlosschleife, welche mir Termine im Jahr 1899 erstellt.

    Komisch dabei ist nur, dass ich den gleichen Code auch in einem geschäftlichen Kalender verwende und da klappt alles!

    Hat jemand eine Idee, woran der Fehler liegen könnte?

    Vielen Dank schonmal!
     
    rocknrolli, 19. Juni 2023
    #1
  2. Interessant ist, dass die Raumbuchungen für die 11 Termine richtig vorgenommen wurden...
     
    rocknrolli, 19. Juni 2023
    #2
  3. Exl121150 Erfahrener User
    Hallo,

    das was mir auf Anhieb aufgefallen ist, ohne dabei deine Daten zu kennen:

    1) Du verwendest zur Festlegung der Variable rFilter den Range("A2:A500"), was bewirkt, dass dafür der Range des aktiven Arbeitsblattes verwendet wird, so als ob dort stünde:
    Set rFilter = ActiveSheet.Range("A2:A500").SpecialCells(xlCellTypeVisible)
    Wenn du damit tatsächlich immer ActiveSheet meinst, ist es so ok - ansonsten gibt es ein Problem, weil das falsche Arbeitsblatt verwendet wird.

    2) Du verwendest den Objektnamen des Arbeitsblattes Tabelle2.
    .Subject = Tabelle2.Cells(rFilterposition.Row, 1).Value
    Solange ein solcher vorhanden ist, auf dem die Termindaten eingetragen sind, und der identisch ist mit dem Objektnamen von ActiveSheet von Punkt 1), ist alles ok.

    3) Endlosschleife, welche mir Termine im Jahr 1899 erstellt.
    Wo diese Endlosschleife auftreten soll, ist mir gänzlich unklar. Wenn das Jahr 1899 in einem Termin auftritt, so deutet das darauf hin, dass du auf eine "Termin"-Zelle zugreifst, die als Wert 0 (oder eine leere Zelle) enthält. In diesem Fall ergibt sich in VBA ein serielles Datum 30.12.1899, während eine solche Zelle im Arbeitsblatt als Datum formatiert den 31.12.1899 oder den 00.01.1900 anzeigt.
    (Die Differenz ergibt sich wegen des Schaltjahr-Fehlers im Excel-Arbeitsblatt, das das Jahr 1900 als Schaltjahr behandelt - in VBA gibt es diesen Fehler nicht.).
    Dieser Jahr-Fehler deutet darauf hin, dass es doch ein Problem zwischen Punkt 1) und Punkt 2) geben könnte.
     
    Exl121150, 21. Juni 2023
    #3
    1 Person gefällt das.
  4. Ausgewählte Excel Termine per VBA in Outlook importieren

    Hallo Anton,

    vielen Dank für deine Hinweise! Den ersten Punkt habe ich folgendermaßen korrigiert:
    Set rFilter = Tabelle2.Range("A2:A500").SpecialCells(xlCellTypeVisible)

    Der Fehler mit den Termineintragungen bliebt aber bestehen. Hier mal ein Screenshot von meinen Daten:
    Ausgewählte Excel Termine per VBA in Outlook importieren upload_2023-6-21_15-52-50.png
    Betreff, Beschreibung und Ort hab ich mal gelöscht... der Ort ist ja auch nicht das Problem. Da werden die Termine richtig erstellt.
    Hast du gerade spontan eine Idee?

    Viele Grüße
     
    rocknrolli, 21. Juni 2023
    #4
  5. Lutz Fricke Erfahrener User
    Hallo rocknrolli,

    und wenn Du in deinen markierten Zellen leere Zellen hat, erzeugst Du Termine am 30.12.1899, oder?

    Probier doch mal nach dem
    Code:
    For Each rFilterposition In rFilter
    eine If-Abfrage
    Code:
    If Cells(rFilterposition.Row, 4)<>"" then
    Gruß,
    Lutz
     
    Lutz Fricke, 21. Juni 2023
    #5
Thema:

Ausgewählte Excel Termine per VBA in Outlook importieren

Die Seite wird geladen...
  1. Ausgewählte Excel Termine per VBA in Outlook importieren - Similar Threads - Ausgewählte Excel Termine

  2. Ausgewählte Zelle auf einen bestimmten Platz springen lassen.

    in Microsoft Excel Hilfe
    Ausgewählte Zelle auf einen bestimmten Platz springen lassen.: Hallo mal wieder nach langer Zeit, vorab: ja ich habe gesucht, aber ich weiß nicht, wie ich mein Problem benennen soll. Folgendes Szenario: Eine Anwesenheitstabelle, zehn Namen, das Ganze Jahr...
  3. Word-Dateien über Excel in eine ausgewählte Word-Datei übertragen per Makro

    in Microsoft Excel Hilfe
    Word-Dateien über Excel in eine ausgewählte Word-Datei übertragen per Makro: Hallo Zusammen, ich hoffe es kann mir jemand weiterhelfen in dem Forum. Ich habe ein Makro in der Excel-Datei (Reiter: Datenbank) im Anhang, wo ich mir von allen Word-Dateien den Pfad und den...
  4. Aus Ausgewählten Spalten eine neue Tabelle erstellen

    in Microsoft Excel Hilfe
    Aus Ausgewählten Spalten eine neue Tabelle erstellen: Ich bin ja derzeit an einer großen Inventur-Tabelle. Nun soll daraus ja eine übersichtliche Tabelle werden, die man einreicht. Ich könnte jetzt einfach dahergehen und alle Spalten ausblenden, die...
  5. Formel funktioniert nicht auf alle ausgewählten Zellen

    in Microsoft Excel Hilfe
    Formel funktioniert nicht auf alle ausgewählten Zellen: Guten Morgen, ich möchte gerne eine Tabelle zur Dienstplanung erstellen. Das komische ist, dass in der Spalte in der ich die Formel angelegt habe (Spalte C) funktioniert alles wie gewollt. Ich...
  6. Excel Alle Namen zu einem ausgewählten Bereich auflisten

    in Microsoft Excel Hilfe
    Excel Alle Namen zu einem ausgewählten Bereich auflisten: Hallo Mitstreiter, ich habe eine Datei, in der ich in einem Tabellenblatt alle Mitarbeiter eines Bereiches eingetragen habe. In den Spalten B-f werden alle Mitarbeiter fortlaufend mit Angabe...
  7. Excel 2010: VBA: Userform - Checkbox - nur ausgewählte Tabellenblätter drucken

    in Microsoft Excel Hilfe
    Excel 2010: VBA: Userform - Checkbox - nur ausgewählte Tabellenblätter drucken: Hallo zusammen, ich habe eine Exceltabelle mit 5 Tabellenblättern ("Deckblatt", "Arbeitnehmer", "Arbeitgeber", "Details", "Vertrag") Ich rufe den Druckvorgang in einer Userform auf...
  8. Ausgewählte Zeilen *.txt in Excel importieren und zuordnen

    in Microsoft Excel Hilfe
    Ausgewählte Zeilen *.txt in Excel importieren und zuordnen: Hallo Experten, hoffe Ihr hattet ebenso schöne Weihnachtsfeiertage :) Ärger mich allerdings seit gestern mit einem kleinen Makro rum... Komm einfach ned klar damit. Vielleicht könnt Ihr...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden