6.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

in meinem VBA-Code aktualisiere ich alle bestehenden Verknüpfungen auf andere xls-sheets - und zwar so:
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources

Mit
On Error Resume Next
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
On Error GoTo 0
könnte ich dafür sorgen, dass auch bei auftretenden Fehlern weiter aktualisiert wird.

Jetzt möchte ich aber folgendermaßen vorgehen:
On Error GoTo ERRORHANDLER
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources

Wenn ein Fehler auftritt, möchte ich im ERRORHANDLER die verknüpfte Datei in einer msgbox anzeigen, die den Fehler verursacht hat.

Wie kann ich diese denn abfangen - also wie muss meine msgbox aussehen?

Danke für euer Hilfe, Gruß
Jojo

4 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi jojo ^^

ein beispiel

mit err liesst du eine provozierte fehlernummer aus,die dann einsetzen

gruss nighty

Errorhaendler:
If Err = 1004 Then
Ansage = MsgBox("Dein text bzw statt der meldung ,dein code")
Else
Err.Raise 1004
End If
0 Punkte
Beantwortet von
Hallo nighty,

danke für die Antwort. Das funktioniert auch. Aber ich dachte, mit dem Befehl
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
werden intern nach und nach alle links aktualisiert und ich könnte dann abfangen, bei welcher Datei der Fehler auftrat.

Ist es möglich, die fehlerverursachende Datei abzufangen und in der msgbox anzuzeigen?

Noch eine Frage: Was macht denn "Err.Raise 1004"???

Gruß
Jojo
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi jojo ^^

schreibe dir ein makro mit dem der fehler produziert wird,uebergebe innerhald des makros den so entstandenen fehlercode einfach einer zelle das du siehst welcher es ist,1004 war ein fuer dich ein ausgedachter fehlercode

der nun so festgestellte fehlercode sollte statt der 1004 ersetzt werden

zu deiner zweiten frage

bewirkt das andere fehler weiterhin nach norm angezeigt werden

noch interessant fuer dich, bei verzweigung eines fehlercodes waere resume next einzusetzen um das makro nach der fehlerbehandlung weiter auszufuehren

gruss nighty
0 Punkte
Beantwortet von
Hallo nighty,

nochmal danke. Der Fehlercode ist nicht das Problem. Den kann ich abfangen. Aber ich möchte, dass bei Auftreten des Fehlers die Datei - also der Dateiname - bekannt wird. D.h. ich gebe den Dateinamen in meiner Fehlermeldung noch mit.

Nur wie mache ich das?

Gruß
Jojo
...