Excel 03: Maktrobefehle mit mehreren Dateien

Hallo,

ich möchte einen Makrobefehl ausführen, der sich nur auf die aktuelle Datei bezieht.

Es geht um folgendes:

Ich habe eine Vorlagedatei, z.B. auto.xls.
Mit diesem Format erstelle ich weitere Dateien, z.B. bmw_auto.xls und audi_auto.xls mit unterschiedlichen Informationen.
Da ich immer wieder neue Dateien mit diesem Format erstelle und eine Übersichtsdatei mit den wichtigsten Informationen aus diesen vielen Dateien benötige, möchte ich ein Makro einführen, welches ich in der grad geöffneten exceldatei, z.B. bmw_auto.xls ausführe und die Zellen mit den wichtigen Informationen in die Übersichtsdatei „verlinke“. Verlinken deshalb, damit die Informationen in der Übersichtsdatei stets aktuell bleiben, wenn ich etwas z.B. in in bmw_auto.xls ändere.

Dazu habe ich bereits ein Makro aufgezeichnet, leider bezieht es sich jedoch immer nur auf die Vorlagedatei.

Wie kann ich das Makro so einstellen, dass es sich auf die grad geöffnete Datei bezieht?

Ich bin gespannt auf Antworten und bedanke mich im Voraus!
Gruß, Christoph

Hallo Christoph,

ich möchte einen Makrobefehl ausführen, der sich nur auf die
aktuelle Datei bezieht.

Anstatt
Worksheets(„Tabelle1“).Range(„A1“).value = 8
genau referenzieren
ActiveWorkbook.Worksheets(„Tabelle1“).Range(„A1“).value = 8
oder
Workbooks(„NeueMappe.xls“).Worksheets(„Tabelle1“).Range(„A1“).value = 8

Oder besser so

With Workbooks("NeueMappe.xls").Worksheets("Tabelle1")
 .Range("A1").value = 8
 'usw.

Ich habe eine Vorlagedatei, z.B. auto.xls.

Im allgemeinen erstellt man als Vorlagendatei eine xlt.

Dazu habe ich bereits ein Makro aufgezeichnet, leider bezieht
es sich jedoch immer nur auf die Vorlagedatei.
Wie kann ich das Makro so einstellen, dass es sich auf die
grad geöffnete Datei bezieht?

Wenn du nicht klarkommst mit obigen Tipps, lade mal die auto.xls hoch mit file-upload s. FAQ:2606

Oder zeige nur die Codes wenn die Mappe an sich unwichtig ist.

Gruß
Reinhard

Der Code für den Befehl zum Verlinken eines Tabellenfeldes von auto.xlsm -> B6 nach übersicht.xlsm -> A5 sieht bei mir so aus:

"
1 Windows(„übersicht.xlsm“).Activate
2 Range(„A5“).Select
3 ActiveCell.FormulaR1C1 = „=[auto.xlsm]Tabelle1!R6C2“
4 Range(„A6“).Select

"

Eigentlich müsste doch der Tabellenplatz in übersicht.xlsm fest sein und die Tabelle in dem geöffneten Dokument variabel, oder? Da ich ja z.B. bmw_auto.xlsm benutzen will…

Hallo Christoph,

Der Code für den Befehl zum Verlinken eines Tabellenfeldes von
auto.xlsm -> B6 nach übersicht.xlsm -> A5 sieht bei mir so
aus:
1 Windows(„übersicht.xlsm“).Activate
2 Range(„A5“).Select
3 ActiveCell.FormulaR1C1 = „=[auto.xlsm]Tabelle1!R6C2“
4 Range(„A6“).Select

Activate und Select brauchst du zu 99% nie, und Windows, ich benutzte es genausooft, also zu 99% nie.

With Workbooks("übersicht.xlsm").Worksheets("derBlattname").Range("A5")
 .FormulaR1C1 = "=[auto.xlsm]Tabelle1!R6C2"
End With 

Eigentlich müsste doch der Tabellenplatz in übersicht.xlsm
fest sein und die Tabelle in dem geöffneten Dokument variabel,
oder? Da ich ja z.B. bmw_auto.xlsm benutzen will…

Irgendwie passt das nicht zu deiner Ausgangsfrage.
Und ich verstehe es nicht.
Normalerweise wenn du per makro eine neue Mappe anlegst hast du je nach Voreinstellung x Blätter. Das erste heißt „tabelle1“.

Lade mal was hoch, evtl. blick ich dann durch was du meinst.

Gruß
Reinhard