Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1740to1744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ActiveWorkbook Close (True) funktioniert

ActiveWorkbook Close (True) funktioniert
21.02.2020 16:09:43
Hafenmaier
Hallo,
ich habe ein Problem mit der Funktion ActiveWorkbook.Close (True), Die veränderten Daten werden nicht zurückgeschrieben. Folgenden Ablauf habe ich erstellt.
- Ich öffne eine Arbeitsmappe (A), die den VBA-Code erhält und gebe Veränderungen in das nun sichtbare Arbeitsblatte ein.
- Das Arbeitsblatt hat einen Button und mit der Funktion hinter dem Button:
-- öffne ich eine andere Excel-Datei (B)
-- kopiere die Zeilen aus dem Arbeitsblatt der Mappe (A) in das Arbeitsblatt der Mappe(B)
-- Ich aktiviere (B)
-- und ich führe mein ActiveWorkbook.Close (True) aus.
Die Abfrage, ob ich speichern möchte, kommt hoch und ich beantworte mit "Ja".
Die Mappe (B) wird dann geschlossen …… alles ist gut, bis auf die Tatsache, dass die Veränderungen beim Schliessen von (B) nicht geschrieben werden. Der ursprüngliche Inhalt bleibt erhalten. Sieht man auch daran, dass sich das Änderungsdatum im Explorer nicht verändert hat.
Was mache ich falsch ?
Danke vorab
Heiko

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveWorkbook Close (True) funktioniert
21.02.2020 16:15:47
Werner
Hallo,
wird wohl am Code liegen - den aber nur du hast.
Gruß Werner
AW: ActiveWorkbook Close (True) funktioniert
21.02.2020 16:23:07
Sheldon
Hallo Heiko,
ActiveWorkbook ist keine gute Methode, um eine geöffnete Datei anzusprechen.
Besser, du definierst eine Variable, der du dann die "andere Exceldatei" zuweist. Elegant geht das direkt beim Öffnen.

Dim oWB
Set oWB = Workbooks.Open("C:\PfadZurDatei\Dateiname.xlsx")
Dann kannst du ohne die Datei überhaupt mit Activate rufen zu müssen, die Werte in die gewünschte Tabelle eintragen, zB mit

oWB.Sheets(1).Range("A20") = "Wert für Zelle A20"
und du kannst die Datei speichern und schließen mit

oWB.Save
oWB.Close
Die Variable gibt man Vor Beenden des Codes frei, mit

Set oWB = nothing

Gruß
Sheldon
Anzeige

247 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige