Mit VBA Datei neu laden

Hallo zusammen!

Ich habe ein Formular als XLSX vorbereitet, in das Daten eingetragen werden.
Anschließend rufe ich ein Makro auf (das ich in eine separate Datei gepackt habe), das Die Arbeitsmappe mittels SaveAsCopy unter anderem Namen speichert.
Nun möchte ich erneut Daten eingeben und dazu die ursprüngliche (leere) Tabelle wiederherstellen. Statt alle einzelnen Zellen zu löschen würde ich dazu gern die Datei, die ja nicht verändert wurde, neu laden.

Workbooks.Open Filename:="Eichprotokoll.xlsx", UpdateLinks:=0, ReadOnly:=True 

liefert aber eine VBA-Fehlermeldung mit dem erhellenden Text „400“. :angry:
Wer kann mir da helfen?

Gruß,
Arndt

Hallo,

einzige spontane Idee: Stimmt der Pfad der zu ladenden Datei? Gib mal den kompletten Pfad an „C:…\Eichprotokoll.xlsx“. Sonst habe ich keine Idee.

fg

Dirk_P

Hallo,
Hier beschreibt MS einen Fehler 400 (leider englisch).
und hier was in deutsch.
Ich hoffe die Antwort hilft bei Deiner Lösung.
Gruß,
charly60

Danke Dirk!
Das war es. Obwohl ich kurz vorher eine Datei in dasselbe Verzeichnis schreibe, hat er die irgendwie nicht gefunden.

Gruß,
Arndt

Hallo Charly,
der deutsche Link bietet ja eine sehr spezielle Konstellation als Ursache an. Die war bei mir nicht gegeben.
In dem Englischen ist dagegen angedeutet, dass es so etwas ist wie „file not found“. Für so einen seltenen Fehler braucht man natürlich keine lesbare Erklärung … :confounded:
Jedenfalls habt ihr beide in die Richtige Richtung gedeutet.
Danke!

Gruß,
Arndt

Das unsprüngliche Problem ist ja jetzt gelöst. Da sich unmittelbar dadurch aber ein Neues auftut, schließe ich das mal gleich hier an:
Beim Öffnen der bereits offenen Datei kommt jetzt ein Dialog mit dem Hinweis, dass die Datei ja bereits offen ist und der Frage, ob ich alle Änderungen verwerfen will.
Das möchte ich und nach entsprechendem Klick bekomme ich, wie gewünscht das leere Formular.
Gibt es eine Möglichkeit, beim Aufruf von Open diese Meldung zu unterdrücken oder vorab mit „ja“ zu beantworten?
Wenn nicht, kann ich natürlich die Datei vorher schließen. Wobei es dann vermutlich eine ähnliche Nachfrage gibt.

Hallo,

das hatte ich befürchtet. Meine Vermutung war, dass mit dem „Speichern unter“ diese Datei zu ist. Daher dachte ich, alles wäre gut. Also dann mal erst zum Ablauf:

Du öffnest zwei Dateien:
„IchHabDasMakro.xl…“
„Eichprotokoll.xlsx“

Dann klickst du deinen Button. SaveCopyAs speichert dann, schließt aber eben nicht „Eichprotokoll.xlsx“. Also einfach auch kein „Eichprotokoll.xlsx“
öffnen! Du solltest einfach wieder Eingaben tätigen können und dann erneut SaveCopyAs, oder? (Schaue auch mal da: Link)

Wenn ich das so richtig sehe, muss „Eichprotokoll.xlsx“ eben nur einmal geladen werden! Noch einfacher!

fg

Dirk_P

Die Lösung hierfür ist einfach. Ich deaktiviere einfach die Fehlermeldung:

    Application.DisplayAlerts = False        
    Workbooks.Open Filename:="Vorlage Eichprotokoll.xlsx", UpdateLinks:=0, ReadOnly:=True
    Application.DisplayAlerts = True