Ich hänge aktuell bei folgendem Problem:
Mit VBA habe ich ein kleines Dialogprogramm geschrieben (Mappenname: A.XLSM). Mit diesem Programm greift der Anwender auf eine selbst gewählte XLSX-Mappe zu (Mappenname: B.XLSX). Als nächstes wählt er das Tabellenblatt aus, das er bearbeiten will (Listbox-Anzeige aller Tabellenblätter, die sich in B.XLSX befinden - z. B.: Tab1). Bestimmte Daten aus diesem Tabellenblatt werden ihm in einem Dialogfenster zur Änderung angezeigt. Jetzt soll der Anwender bestimmte Daten ändern können und in das Tabellenblatt Tab1 der Mappe B.XLSX zurückschreiben.
Das ist die Idee.
Das Einlesen und Anzeigen der Daten ist problemlos. Nur mit dem Schreiben in das Tabellenblatt _ Tab1 in der Mappe B.XLSX klappt es nicht. Aktuell habe ich folgenden Code zu Testzwecken aufgebaut:
Dim shZiel As Worksheet
Application.ScreenUpdating = False
'gcZugriff = vollständiger Pfad mit Name der Mappe und XLSX-Endung
'z. B. D:\MeineDaten\Mappe1.xlsx
'gcBlatt = Name des Tabellenblattes in gcZugriff
'z. B. Tab1
Set shZiel = GetObject(gcZugriff).Sheets(gcBlatt)
With shZiel
.Range("I7") = 123 'Dummy-Daten zu Testzwecken; später Inhalt einer Textbox
With .Parent
Windows(.Name).Visible = True
.Close SaveChanges:=True
End With
End With
Application.ScreenUpdating = True
Set shZiel = Nothing
Der Code läuft fehlerfrei durch, aber es kommt im Tabellenblatt nichts an. Die Zelle I7 hat weiterhin den Wert 0 und nicht 123.
Was mache ich falsch?
Besten Dank für jede Hilfestellung!
Have Fun!
Heinrich