Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Pfad automatisch in andere Datei kopieren





Frage

Hallo, ich habe derzeit fuer verschiedene Personen jeweils eine gleiche Excel-Datei angelegt, aus der ich eine Zusammenfassung in eine fuer alle Dateien gemeinsame Datei kopieren moechte. Bsp.: DateiA.xls fuer Person A DateiB.xls fuer Person B usw. Zusammenfassung.xls fuer die wichtigsten Inhalte aus den einzelnen Dateien. Ich suche eine Loesung, mit der ich per Knopfdruck in der jeweiligen Personendatei (also mit einem Makro) eine Zeile in die Datei Zusammenfassung.xls kopieren kann. Das soll aber so geschehen, dass in der Datei Zusammenfassung.xls nicht nur die Inhalte stehen, sondern ein Zellbezug erstellt wird. Wenn ich also im Nachhinein den Inhalt einer Personendatei aendere, soll diese Aenderung automatisch und ohne weiteren Knopfdruck in die Zusammenfassung.xls uebernommen werden. Bsp.: In der Datei Zusammenfassung steht nicht nur Inhalt A, sondern '[c:\pfad\DateiA.xls]Tabelle1'!B4 Fuer den Fall, dass diese Beschreibung nicht exakt genug war, bitte melden. Vielen Dank fuer Eure Hilfe. Phlip

Antwort 1 von Phlip

Wo sind die Excel-Profis. Kennt niemand eine Loesung fuer dieses Problem? Ich dachte, es waere ein eher leichtes Problem, bei dem ich nur nicht auf die Loesung komme...

Kennt Ihr alternativ noch weitere gute Excelforen im Netz?

Phlip

Antwort 2 von Aliba

Hi Phlip,

hier brauchst Du die VB-Profis. Da hab ich zwar auch wenig Ahnung davon, aber ich habe mal ein Makro aufgezeichnet, das folgendes macht:

In PersonA.xls ist ein Bereich markiert. Wenn dann das Makro gestartet wird, wird die Datei Zusammenf.xls geöffnet , hier die Tabelle2 Zelle B4 ausgewählt und die kopierten Daten als Bezüge zur PersonA.xls eingefügt. Danach wird wieder in PersonA.xls gewechselt.

Die Problematik hierbei: die Angabe, wohin die Daten als Bezüge kopiert werden sollen müssten ja wahrscheinlich irgendwie variabel gestaltet werden, denn sonst benötigst Du ja für jede Mappe und jede Datenzeile ein extra Makro. Aber wie gesagt, dazu langen meine VB-Kenntnisse nicht aus, es sei denn, Du hast irgendeine Einfügelogik. Man könnte auch darüber nachdenken, ob das Makro vielleicht von Zusammenf.xls aus gestartet wird und dann irgendwo die Einfügedaten gesteuert werden.

Der Code für das Makro sieht nach dem Aufzeichen so aus:

Sub Makro1()


Selection.Copy
Workbooks.Open FileName:="C:\Eigene Dateien\Supportnet\Zusammenf.xls"
Sheets("Tabelle2").Select
Range("B4").Select
ActiveSheet.Paste Link:=True
Windows("personA.xls").Activate
Application.CutCopyMode = False

End Sub

CU Aliba



Antwort 3 von Guenter

Hallo Phlip,

um den Inhalt einer Zelle in der DateiA in die Datei Zusammenfassung zu schreiben, kannst Du dieses Makro verwenden:

Option Explicit

Sub Makro1()
    Dim A1Text
    Range("A1").Select
    A1Text = Cells(1, 1).Value
    Workbooks.Open Filename:="C:\EXCEL\Zusammenfassung.xls"
    Range("A5").Select
    Cells(5, 1).Value = "c:\DateiA.xls" & " " & A1Text
    Application.CutCopyMode = False
End Sub


Um aber bei Änderungen in der DateiA immer einen Update in der Datei Zusammenfassung zu bekommen, würde ich ein Ereignismakro einsetzen:
Worksheet_Change Target Range Deine Zelle, die verändert wird.

Gruß
Günter

Antwort 4 von Guenter

Ergänzung:

hier findest Du ein Makro für SelectionChange, das auch bei Worksheet_Change funktioniert:
https://supportnet.de/discussion/listmessages.asp?AutoID=142331

Gruß
Günter

Antwort 5 von Phlip

@Aliba:

Danke fuer die Hilfe. Die entscheidenden Hinweise waren die Zeilen

Workbooks.Open ...
ActiveSheet.Paste Link:=True

@all:
Eine Frage habe ich aber noch. Ich moechte die geoeffnete Datei zusammenf.xls danach gerne wieder schlie$en. Also habe ich mal probiert

Workbooks.Close FileName:="Pfad"

Aber das hat leider nicht funktioniert.
Weisst Du oder jemand anderes vielleicht wie das geht?

Antwort 6 von Phlip

@Guenther:
Ich hatte Alibas Antwort eine ganze Zeit lang geoeffnet, bevor ich geantwortet habe. Daher habe ich Deine Antwort erst jetzt gesehen. Dir natuerlich auch herzlichen Dank fuer die Hilfe.

Welchen Vorteil hat ein solches von Dir angesprochenes Ereignismakro? Werden nicht sowieso alle Links beim Oeffnen der Datei zusammenfassung.xls aktualisiert?


@all:
Weiterhin die Frage aus meinem letzten Post: Ich moechte die geoeffnete Datei zusammenf.xls danach gerne wieder schlie$en. Also habe ich mal probiert

Workbooks.Close FileName:="Pfad"

Aber das hat leider nicht funktioniert.
Weisst Du oder jemand anderes vielleicht wie das geht?

Antwort 7 von Guenter

Hallo,

im Prinzip ist das Ergebnis wohl identisch. Es kommt halt draufan, was Du genau machen willst.
Wenn das Ereignismakro Worksheet_Change in DateiA (oder DateiB, ..) steht, wird bei jeder Änderung in dem vorgewählten Zell-Bereich in dieser Datei in Zusammenfassung.xls geschrieben und gespeichert. Zusammenfassung.xls wird also ständig aktualisiert und nicht erst beim öffnen.

Zum Schließen:
ActiveWorkbook.Close
oder Workbooks(Filename).Close

siehe auch in Excel Hilfe.

Gruß
Günter

Antwort 8 von Aliba

Hi Plip,

so sollte es funzen:


Sub Makro2()

Selection.Copy
Workbooks.Open FileName:="C:\Eigene Dateien\Supportnet\Zusammenf.xls"
Sheets("Tabelle2").Select
Range("B4").Select
ActiveSheet.Paste Link:=True
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

CU Aliba

Antwort 9 von Phlip

Danke fuer Eure Hilfe. Jetzt klappt's.