Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Mit Makro andere Excel Datei öffnen





Frage

Hallo zusammen Bin sehr begeistert von dieser Seite!! Habe schon viele gute Tipps gesehen. Danke an alle die Excel können wie ihre eigene Hosentasche. Nun meine Frage: Ich habe eine Datei mit verschiedenen berechnungen in Zellen (a3, b5). Nun möchte ich die Zahlen (ergebnisse) in a3, b5 in eine andere Exceldatei in eine Zeile speichern und wieder zurückkehren in die andere Datei mit den berechnungen. In der selben Datei eine Auflistung machen mit einem makro geht schon. Aber wie mit einer anderen Datei. Vielen Dank schon mal fürs Antworten Grüsse Maxli

Antwort 1 von martl

Hallo Maxli,

vielleicht hilft dir das schon mal weiter:

Sub Test()
Workbooks("Ziel.xls").Activate
Range("A1").Value = Workbooks("Start").Worksheets("Tabelle1").Range("A3").Value
Workbooks("Start.xls").Activate
End Sub

Der Wert aus A3 wird in die Datei "Ziel.xls" in Zelle A1 geschrieben. Vielleicht kannst Du mir noch n paar Infos geben, wie die Start und Zieldatei aufgebaut ist, bzw. sein sollte, und ob nur bestimmte Werte (aus welchen Zellen ?) kopiert werden sollen.

Viele Grüße
martl

Antwort 2 von Primut

Hi Maxli,

von der Idee her ist martl´s Gedanke richtig,
bin mir auf die Schnelle unsicher, ob Activate
reicht oder Open verwendet werden müßte.
Dieser Ansatz läuft aber nur, wenn beide Arbeitsmappen im selben Ordner stehen.
Wenn die andere Arbeitsmappe mit Open geöffnet wird, müßte sie anschließend auch wieder geschlossen werden.
So weit auf die Schnelle, kann mich morgen ausführlich melden....

Gruß
Primut

Antwort 3 von maxli

Hallo zusammen
Danke für die Ideen. Versuche mit einem konkreten Beispiel mich besser Auszudrücken.
In der ersten Datei (normale datei.xls) "C:Dokumente und EinstellungenAdministratorDesktop est" wird gerechnet. Das Ergebnis ist in a3.

Nun möchte ich das Ergebnis in einer anderen Datei "W:DokumenteVORLAGEN" in der Zeile a2 speichern.
Das heisst also:
Das Ergebnis von Laufwerk C: kopieren
Datei auf Laufwerk W: öffnen
das Ergebnis in Zeile 2 schreiben
Datei auf Laufwerk W: speichern und wieder schliessen.
Wäre noch super wenn man das speichern auf Laufwerk W: nicht unbedingt sieht.

Hoffe es ist nicht zuviel verlangt.
Danke für die Antworten

Antwort 4 von Primut

Hi Maxli,

von der Sache her kein Problem, anbei ein Beispiel - Makro:


Sub DatenExportieren()

Const LW = "W:"
Const Pfad = "W:Dokumente Vorlagen"
Const Datei = "SpeicherDatei.xls"

ChDrive LW
ChDir Pfad

On Error Resume Next
Wert = Workbooks("Normale Datei.xls").Sheets(1).Cells(3, 1).Value
Workbooks.Open Datei
Workbooks(Datei).Sheets(1).Cells(1, 1).Value = Wert
Application.DisplayAlerts = False
Workbooks(Datei).Close
On Error GoTo 0
End Sub


Ich gehe davon aus, das du dich schon ein wenig mit VBA auskennst, oder?
Es versteht sich vonn selbst, daß die entsprechenden Pfade und Dateinamen genau angepasst werden müssen, sonst läuft nix. D.h. mit der integrierten Fehlerbehandlung wird nix ausgeführt, wenn der Pfad falsch ist o.ä. (d.h. es gibt auch keine Fehlermeldung)
Dieses Makro wäre dann in der "Normalen Datei" einzufügen, und die Cells(Zeilennummer,Spaltennummer) entsprechend anzupassen.

Gruß Primut

Antwort 5 von Primut

Hey,

sorry, versteht sich natürlich von selbst, daß jeweils
nach "W:" ein Backslash kommen muß!!

Keine Ahnung, was hier übermittlungstechnisch schiefgelaufen ist.

@Admin : Bin ich zu blöd, daß mein Backslash im Code nicht angezeigt wird, oder ist das ein Systemfehler ??? In der Vorschau war er noch sichtbar! (Ich habs einfach rüberkopiert) Welche Tricks wären dafür hilfreich?


Gruß Primut

Antwort 6 von maxli

Hallo da bin ich wieder

Habe es nun angepasst und ausprobiert? Folgendes passiert : Wenn ich das Makro ausführe, gibt es mir eine Kopie von: VBAProject(Probe.XLS)

Die Kopie heisst: VBAProject(Sicherungstest.XLS)

Was muss ich nun tun, damit es mir die daten von Probe.xls (a3) in die datei sicherungstest schreibt. Oder welchen Fehler mache ich noch?

Hier das angepasste makro für mich

Sub DatenExportieren()

Const LW = "G:"
Const Pfad = "G:"
Const Datei = "sicherungstest.xls"

ChDrive LW
ChDir Pfad

On Error Resume Next
Wert = Workbooks("Probe").Sheets(1).Cells(3, 1).Value
Workbooks.Open Datei
Workbooks(Datei).Sheets(1).Cells(1, 1).Value = Wert
Application.DisplayAlerts = False
Workbooks(Datei).Close
On Error GoTo 0
End Sub

Antwort 7 von Peejay Joy

Hi maxli!

Ich muss mich demnächst mit etwa demselben Problem wie du rumschlagen und bin daher auf deinen Beitrag gestoßen.

Jetzt hab´ ich ein wenig rumprobiert und bei mir funktioniert es:).

Ich versuch jetzt mal deinen Code an meinen anzupassen:

Sub DatenExportieren()

Const LW = "G:"
Const Pfad = "G:"
Const Datei = "G:sicherungstest.xls"

ChDrive LW
ChDir Pfad

On Error Resume Next
Wert = Workbooks("Probe.xls").Worksheets("<Name des Sheets>").Range("A3").Value
Workbooks.Open Datei
Workbooks("sicherungstest.xls").Worksheets("<Name des Sheets>").Range("A1").Value = Wert
´Application.DisplayAlerts = False
Workbooks("sicherungstest.xls").Save
Workbooks("sicherungstest.xls").Close
On Error GoTo 0
End Sub

Man beachte die Save Funktion - sonst kannst du dir das kopieren vermutlich auch sparen;). Außerdem arbeite - zumindest - ich lieber mit Worksheets (statt Sheets) und Range (statt Cells), weil man dann als Parameter direkt mit Namen arbeiten kann und nicht mit irgendwelchen Zahlen, wo man z.B. bei Cells schon nicht mehr weiß was Zeile und was Spalte ist. Ein Fremder der vielleicht den Code mal übernehmen muss tut sich dann bestimmt auch leichter:).

Übrigens...falls sich in der Mappe, die du schließt noch nicht gespeicherte Daten befinden, erscheint automatisch eine Sicherheitsabfrage. Mit
Application.DisplayAlerts = False
kannst du diese Abfrage unterbinden. Ich finde das ja nicht sehr sinnvoll und habe es oben daher auskommentiert.

Ich hoffe, ich konnte dir helfen!

Viele Grüße,
Peejay

Antwort 8 von maxli

Hallo zusammen

Endlich hats auch bei mir klick gemacht.
Vielen Dank für eure Hilfe

Güsse Maxli