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

Laufzeitfehler 429 richtig abfangen

Forumthread: Laufzeitfehler 429 richtig abfangen

Laufzeitfehler 429 richtig abfangen
20.06.2024 09:21:22
krug96
Hallo,

ich habe ein Problem bei der Abfrage, ob Outlook gestartet ist.
Bei
GetObject(, "OUTLOOK.Application")
kommt an einem PC der Laufzeitfehler 429 und an einem anderen PC nicht.
Jetzt würde ich gerne den Laufzeitfehler 429 entsprechend abfangen. Dazu habe ich im Web gesucht und bin auf verschiedene Lösungen gestoßen. Leider hat keiner dieser Funde eine Lösung gebracht. Ich glaube, dass
On Error GoTo
nicht wirklich funktioniert.
Auf jeden Fall bleibt mein Code immer an der gleichen Stelle "hängen"

Hier mein Code:


Private Sub CommandButton2_Click()
Dim i As Integer
Dim myOutlook As outlook.Application
On Error GoTo FehlerVerarbeitung
'Abfrage ob Outlook gestartet ist
Set myOutlook = GetObject(, "OUTLOOK.Application")
If Not myOutlook Is Nothing Then
MsgBox "Outlook läuft"
End If
Set myOutlook = Nothing
Exit Sub

FehlerVerarbeitung:
'Was tun, wenn eine Zeile einen Laufzeitfehler enthält?
Select Case Err.Number
Case 429
'Ungültiger Prozeduraufruf oder ungültiges Argument
MsgBox "Outlook läuft nicht"
Resume Next
Case Else
'Es liegt ein neuer Fehler vor
MsgBox "Neuer Fehler: " & vbCrLf & Err.Number & _
vbCrLf & Err.Description
Exit Sub
End Select
End Sub


Was kann ich tun?

Vielen Dank für die Hilfe
Grüß Michael
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 429 richtig abfangen
20.06.2024 09:54:22
ralf_b


Sub CommandButton2_Click()
Dim i As Integer
Dim myOutlook As Object
On Error Resume Next
'Abfrage ob Outlook gestartet ist
Set myOutlook = GetObject(, "OUTLOOK.Application")
If Not myOutlook Is Nothing Then Set myOutlook = CreateObject("OUTLOOK.Application")
If Not myOutlook Is Nothing Then MsgBox "Outlook läuft" Else GoTo FehlerVerarbeitung
Set myOutlook = Nothing
Exit Sub

FehlerVerarbeitung:
'Was tun, wenn eine Zeile einen Laufzeitfehler enthält?
Select Case Err.Number
Case 429
'Ungültiger Prozeduraufruf oder ungültiges Argument
MsgBox "Outlook läuft nicht"
Case Else
'Es liegt ein neuer Fehler vor
MsgBox "Neuer Fehler: " & vbCrLf & Err.Number & _
vbCrLf & Err.Description
End Select
Set myOutlook = Nothing
End Sub
Anzeige
AW: Laufzeitfehler 429 richtig abfangen
20.06.2024 16:24:50
Marc
Da du nach dem Fehler ja mit Resume Next weiter arbeitest, hast du das Problem das das Objekt nicht vorhanden ist, mit dem du arbeiten willst..

Also entweder abfragen ob Objekt nothing ist, oder Resume Next weg lassen.
AW: Laufzeitfehler 429 richtig abfangen
21.06.2024 17:18:07
Kuwer
Hallo Michael,

schau mal im VBA-Editor bei Extras - Optionen - Allgemein, was bei Unterbrechen bei Fehlern angehakt ist. Ist der Haken für Bei jedem Fehler gesetzt, wird On Error ignoriert.

Userbild

Gruß, Uwe

Anzeige
AW: Laufzeitfehler 429 richtig abfangen
21.06.2024 17:34:14
Oppawinni
Man möchte es nicht glauben, aber danach sieht es fast aus.
AW: Laufzeitfehler 429 richtig abfangen
24.06.2024 09:08:40
krug96
Hallo Uwe,

das war das Problem.
Einstellungen geändert und schon funzt es.

Vielen Dank.

Gruß Michael
AW: Laufzeitfehler 429 richtig abfangen
21.06.2024 09:57:31
krug96
Hallo Ralf_B,
hallo Marc,

mit meinem Code komme ich gar nicht zu dem
If Not myOutlook Is Nothing Then Set myOutlook = CreateObject("OUTLOOK.Application")


Der Code bleibt bei
Set myOutlook = GetObject(, "OUTLOOK.Application")
hängen.

Könnte es was helfen, wenn die Anzeigen / Meldunge deaktiviert werden?
Auch mit
Application.DisplayAlerts = False
bleibe ich an
Set myOutlook = GetObject(, "OUTLOOK.Application")
hängen.

Andere Überlegung: Kann es eventuell daran liegen, dass ich in einer Domain als normaler User ohne Adminrechte das ausprobiere?

Viele Grüße
Anzeige
AW: Laufzeitfehler 429 richtig abfangen
21.06.2024 13:54:53
Oppawinni
Hm,
Der google sagt, man soll das so machen:
Public Function GetOutlookApp() As Object


On Error Resume Next
Set GetOutlookApp = GetObject(, "Outlook.Application")
On Error GoTo 0

If GetOutlookApp Is Nothing Then
Set GetOutlookApp = CreateObject("Outlook.Application")
End If

End Function
Anzeige
AW: Laufzeitfehler 429 richtig abfangen
21.06.2024 14:23:55
krug96
Hallo Oppawinni,

vielen Dank für Deine Hilfe aber auch bei dem Ansatz bleibe ich an
Set GetOutlookApp = GetObject(, "Outlook.Application")
hängen, wenn Outlook nicht gestartet ist.
Wenn Outlook gestartet ist, funktioniert das Script problemlos.

Beste Grüße
Michael
Anzeige
AW: Laufzeitfehler 429 richtig abfangen
21.06.2024 16:18:11
Oppawinni
Also bei mir ist es egal, ob Outlook offen ist oder nicht.
Set GetOutlookApp = GetObject(, "Outlook.Application")
erkennt das nicht.
D.h. im Grunde würde ich so immer
Set GetOutlookApp = CreateObject("Outlook.Application")
verwenden.
Gibt das irgend ein Problem?
AW: Laufzeitfehler 429 richtig abfangen
20.06.2024 10:06:44
krug96
Hallo Ralf_b,

vielen Dank für die schnelle Rückmeldung. Leider klappt das immer noch nicht.
So wie ich das sehe ignoriert er das
On Error Resume Next
und steigt mit dem Laufzeitfehler 429 aus.

Hier die Datei
https://www.herber.de/bbs/user/170374.xlsm

Vielen Dank.
Anzeige
AW: Laufzeitfehler 429 richtig abfangen
20.06.2024 14:01:12
ralf_b
nimm mal das erste "not" weg


If myOutlook Is Nothing Then Set myOutlook = CreateObject("OUTLOOK.Application")
If Not myOutlook Is Nothing Then MsgBox "Outlook läuft" Else GoTo FehlerVerarbeitung

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige