Supportnet / Forum / Tabellenkalkulation
Fehlerhandling in Excel-VB-Makro bei Aktualisierung von Verknüpfungen
Frage
Hallo,
ich habe in mehreren Excel-Dateien ein Workbook_Open()-Makro, das u.a. sämtliche Dateiverknüpfungen mit dem folgenden Befehl aktualisiert:
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
Ist eine der verknüpften Dateien bereits geöffnet, erscheint die Fehlermeldung "Laufzeitfehler '1004': Die Methode 'UpdateLink' für das Objekt '_Workbook' ist fehlgeschlagen."
Kann ich das mittels Fehlerhandling abfangen? Oder kann ich die Aktualisierung bspw. in einer Schleife für alle verknüpften Dateien durchführen lassen? (dabei könnte ich ja für jede Datei abfragen, ob diese bereits geöffnet ist oder nicht).
Ich möchte auf keinen Fall die Dateinamen inkl. Netzwerkpfad hart in den Code setzen.
Vielen Dank für eure Hilfe
Jojo
Antwort 1 von coros
Hallo Jojo,
prüfe über eine Schleife, ob die Datei bereits geöffnet ist. Wenn ja, lasse die Datei schließen. Als Ansatz mal nachfolgende Zeilen.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
prüfe über eine Schleife, ob die Datei bereits geöffnet ist. Wenn ja, lasse die Datei schließen. Als Ansatz mal nachfolgende Zeilen.
For iWorkbook = 1 To Workbooks.Count
If Workbooks(iWorkbook).Name = "Name der Datei" Then
Workbooks(iWorkbook).Close False
Exit For
End If
Next
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von jojo5
Hallo,
danke für die Antwort. Aber ich möchte auf keinen Fall die einzelnen Dateinamen "hart" angeben. Egal an welcher Stelle des Makros. Denn wenn ich bspw. bei geöffneter Datei (die das Makro enthält) eine verknüpfte Datei unter einem anderen Namen speichere (bspw. mit einer neuen Versionsnummer), so ändern sich zwar automatisch alle Formeln - den VB-Code müsste ich aber jedes Mal manuell nachziehen.
Deshalb ist das noch nicht die Lösung, die ich brauche.
Trotzdem danke, Gruß
Jojo
danke für die Antwort. Aber ich möchte auf keinen Fall die einzelnen Dateinamen "hart" angeben. Egal an welcher Stelle des Makros. Denn wenn ich bspw. bei geöffneter Datei (die das Makro enthält) eine verknüpfte Datei unter einem anderen Namen speichere (bspw. mit einer neuen Versionsnummer), so ändern sich zwar automatisch alle Formeln - den VB-Code müsste ich aber jedes Mal manuell nachziehen.
Deshalb ist das noch nicht die Lösung, die ich brauche.
Trotzdem danke, Gruß
Jojo