Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Outlook auslesen, plötzlich Fehler


Betrifft: Outlook auslesen, plötzlich Fehler von: Daniel Diers
Geschrieben am: 10.10.2017 08:44:50

Hallo Profis,
leider bin ich ratlos. Wir hatten uns eine Excel-Datei gebastelt, welche den Outlook-Kalender inkl. der Kategorien ausliest. Bis letzte Woche hat dies auch funktioniert, seit dieser Woche bekommen wir den Fehler:

Fehle-Nr.: 1940651761
Fehler beim Vorgang. Ein Objekt kann nicht gefunden werden.

Wir brauchen dringend die Analyse wieder. Hat irgendwer eine Idee, wie ich es lösen kann? Bin um eine Lösung sehr verlegen.

https://www.herber.de/bbs/user/116828.xlsm

Danke schon einmal.

VG
Daniel

  

Betrifft: AW: Outlook auslesen, plötzlich Fehler von: Luschi
Geschrieben am: 10.10.2017 17:00:23

Hallo Daniel,

die Fehlermeldung ist ja nur das Ergebnis folgender Vba-Zeile:
MsgBox "Fehle-Nr.: " & .Number & vbLf & .Description

Damit Du aber rausbekommst, welche Vba-Zeile den Fehler erzeugt, mußt Du die folgende Vba-Zeile als Kommentar kennzeichnen, also deaktivieren:
'On Error GoTo Fehler
Ich verwende Outlook 2016 und kein Fehler erscheint. Allerdings habe ich auch nicht allzuviele Termine im Kalender zu stehen.
Informiere uns also, in welcher Vba-Zeile der Fehler entsteht.

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Outlook auslesen, plötzlich Fehler von: Daniel Diers
Geschrieben am: 10.10.2017 20:18:28

Hallo Luschi,

danke schon einmal für deinen Tipp. Der Fehler liegt hier (s. Pfeile):

Private Sub AusnahmeTermine(olApt As Outlook.AppointmentItem, olRecPat As Outlook. _
RecurrencePattern)
    'Ausnahmen bei wiederkehrenden Terminen prüfen und Zeit von Start und Ende einlesen
    Dim datListe As Variant, datOriginal As Date
    Dim datStartNeu As Date, datEndeNeu As Date
    Dim olException As Outlook.Exception
    Dim iCount As Integer
    If iApt = 0 Or olRecPat.Exceptions.Count = 0 Then Exit Sub
    For iCount = 1 To iApt
        datListe = arrApt(2, iCount)
        For Each olException In olRecPat.Exceptions
            datOriginal = olException.OriginalDate
            If datOriginal = datListe Then
 ->    ->    -> datStartNeu = olException.AppointmentItem.Start
                datEndeNeu = olException.AppointmentItem.End
                arrApt(2, iApt) = datStartNeu
                arrApt(3, iApt) = datEndeNeu
                Exit For
            End If
        Next olException
    Next iCount
End Sub
Fehlermeldung: Fehler beim Vorgang. Ein Objekt kann nicht gefunden werden.

Hast du eine Idee, wie ich es lösen kann?

Danke dir schon einmal und VG
Daniel


  

Betrifft: AW: Outlook auslesen, plötzlich Fehler von: firmus
Geschrieben am: 11.10.2017 22:26:51

Hallo Daniel,

habe das mal mit einer Serie 11.okt-20.okt 8:00-8:30 täglich mal getestet mit Outlook-2013.

1. Ich erhalte keinen Fehler
allerdings
2. wenn ich die Zeit eines Termin verschiebe, klappt das in DATA
3. wenn ich einen Tag ganz lösche, erhalte ich den Standardtermin eingetragen.
Soll das so sein?
Über olExceptions(nn).Delete = WAHR kann das abgefragt werden.
4. wenn ich einen Tag zum Ganztagstermin mache, erhalte ich den Standardtermin eingetragen.
Soll das so sein?
Über olExceptions(nn).AppointmentItem.AllDayEvent = WAHR kann das abgefragt werden.

5. Welchen Sinn macht der Übergabeparameter "olApt" in "Sub AusnahmeTermine" ?

Ansonsten würde ich:
1. analog Luschi vorschlagen "On Error Goto 0" - damit bleibt VBA an der Fehlerstelle hängen.
2a. Vor dem Test die Zeile VOR deiner Fehlerzeile als STOP setzen (F9).
2b. "olRecPat", "datListe", "arrApt", "iApt" und "iCount" in das Überwachungsfenster setzen
3. Testen, und im Fehlerfall das Überwachungsfenster akkurat untersuchen.

Viel Erfolg,
Gruß,
Firmus



  

Betrifft: AW: Outlook auslesen, plötzlich Fehler von: Daniel
Geschrieben am: 12.10.2017 06:37:21

Hallo,

klasse, danke für die Hinweise. Wäre es evtl möglich, dass du mir den aus deiner Sicht optimierten Code bzw optimierte Datei erstellat und sendest? 😬

Wir benötigen diese Datei wirklich dringend und ich bwkomme ew. icht hin.

Das wäre echt super klasse!

Danke schon einmal und VG

Daniel


  

Betrifft: AW: Outlook auslesen, plötzlich Fehler von: Firmus
Geschrieben am: 12.10.2017 19:38:29

Hi Daniel,

Deinem Wunsch, dass ich das hier weiterentwickle, kann ich nicht nachkommen.
Das ist
a) aus Zeitgründen nicht möglich
b) ist dazu deine Umgebung (System+outlook-daten) nötig.

Gerne assistiere ich weiter bei Debugging in begrenztem Umfang. Du brauchst einfach hier zu posten.
Laß einfach mal die Ergebnisse Deiner Tests wissen.

Gruß,
Firmus


  

Betrifft: AW: Outlook auslesen, plötzlich Fehler von: Daniel Diers
Geschrieben am: 13.10.2017 14:07:52

Hallo Luschi,

ok, verständlich. Habe mal die Variablen in das Überwachungsfenster gebracht und überwacht. Leider hilft mir dies nicht weiter. Erkennst du hier ein Problem und was ich ändern kann?



Danke dir und VG
Daniel


  

Betrifft: AW: Outlook auslesen, plötzlich Fehler von: firmus
Geschrieben am: 13.10.2017 20:47:41

Hi Daniel,
ich nehme an Dein Coding ist prinzipiell richtig, aber mit unterschiedlichen Datenkombinationen kommt es zu Fehlern.
Analyse deines Uploads.

1. iApt = 21, arrApt ist 1-4 und 1-21
Die Verarbeitung steht also auf dem letzten Array-eintrag (2,21)
2. nachdem von 1-4 fix "2" genommen wird, und iCount von iApt hochgezählt wird, müßte iCount auch 21 sein.
Angezeigt wird jedoch "Ausserhalb des Kontexts" - eventuell beim stop erneut ins Fenster ziehen. (immer aus der aktuellen SUB).
Nachdem "datListe = arrApt(2, iCount)" richtig gesetzt wurde, nehme ich an, dass iCount nur den refresh aus der aktuellen SUB braucht, aber inhaltlich richtig ist.
3. olException.AppointmentItem bringt in deinem Beobachtungsfenster "Ein Objekt kann nicht gefunden werden."
"olException.AppointmentItem" ist ein gültiger Eintrag im Outlook-Objektmodel, sonst käme ein Compilierungsfehler.
Also wird hier auf einen Exception-Eintrag verwiesen, der auf kein AppointmentItem referenziert. DAS IST DEIN FEHLER.

Hier ist es interessant wie der Tag im Kalender aussieht.
Diese Information sollte den Hinweis geben, warum die Logik so abnormal durchlaufen wird.
Kann es sein, dass die Kalendereinträge über ein anderes Makro erzeugt werden (und eventuell nicht konform der Outlook-Systematik sind)?

4. Welche Fehlermeldung kommt, wenn deine gelb markierte Instruktion ausgeführt wird?
Noch wichtiger: wie sehen die Daten dazu aus.

Vorschlag:
1. Setze unmittelbar nach den DIMs der "Sub AusnahmeTermine" ein "On Error Goto 0"
Das schaltet private Fehlerbehandlungen an dieser Stelle garantiert aus - und du siehst das Original aus dem System.
2. Dann kannst Du im Beobachtungsfenster alle Variablen untersuchen.

3. Falls Du eine schnelle, "dirty" Lösung brauchst, kannst Du versuchen über eine Error-Routine das fehlende AppointmentItem fix zu belegen und weiterzumachen.
Natürlich solltest Du dir diese genaue Stelle auswerfen lassen, um der Ursache nachzugehen.
(Manche Situation fängt aber die Error-Routine nicht ab, dann .....)

Viel Erfolg.

Firmus

ps: Lass wissen wie Du vorankommst.


  

Betrifft: AW: Outlook auslesen, plötzlich Fehler von: Daniel Diers
Geschrieben am: 16.10.2017 08:36:26

Hallo Firmus,

danke für deine Tipps, aber mit "On Error GoTo 0" kommt der Fehler immernoch. Dass mit der Errorroitine und der qick und dirty Lösung habe ich leider nicht verstanden, was ich hier genau machen soll. Kannst du mir dies noch einmal etwas erläutern?

Ganz großes DANKE schon einmal für deine Unterstützung.

VG
Daniel


Beiträge aus den Excel-Beispielen zum Thema "Outlook auslesen, plötzlich Fehler"