Hoi liebe Experten.
Habe folgendes Problem. Habe viele Dateien und diese haben viele Tabellenblaetter. Da diese Tabellenblaetter alle ein standadisiertes Formular beinhalten, habe ich einfach ein Tabellenblatt zugefuegt um eine Uebersicht zu erstellen. Soweit so gut. Ich beziehe mich also immer Absolut auf die Werte aus den einzelnen Tabellenblaettern,
sprich meine Formel in der Gesamtuebersicht sieht in etwa so aus:
Datei1.xls:
Fuer Tabellenblatt A
=A!$D$10
=A!$D$11
=A!$B$16
fuer Tabellenblatt B
=B!$D$10
=B!$D$11
=B!$B$16
gleiches fuer Tabellenblatt C- Z
so nun habe ich diese Eingaben gemacht und moechte auch gerne die ganzen Formeln fuer meine anderen knapp 100 Dateien anwenden. Sprich, ich mache mir mein neues Tabellenblatt in Datei2, Datei3, (…) Datei100(Uebersicht) kopiere die Formel… Nur zeigt er mir dann zb fuer Datei2.xls folgendes an:
Fuer Tabellenblatt A
=’[Datei1.xls]A’!$D$10
=’[Datei1.xls]A’!$D$11
=’[Datei1.xls]A’!$D$16
Fuer Tabellenblatt B
=’[Datei1.xls]B’!$D$10
=’[Datei1.xls]B’!$D$11
=’[Datei1.xls]B’!$D$16
etc etc…
Wie kann ich denn verhindern, dass meine Formel sich immer auf die Ursprungsdatei, also Datei1 hier in dem Fall bezieht?
Wuerde mich freuen, wenn mir jemand helfen koennte.
Hoi Hangover!
Wie kann ich denn verhindern, dass meine Formel sich immer auf
die Ursprungsdatei, also Datei1 hier in dem Fall bezieht?
Soviel ich weiß, gar nicht. Das liegt daran, dass Bezüge auf Blätter und Dateien immer Absolutbezüge sind. Möglicherweise geht sowas mit Makros, aber da bin ich leider die falsche Adresse.
Gruß Alex
Habe einen Weg gefunden, es ginge indirekt mit der Formel Indirekt 
jetzt habe ich nur das Problem, dass ich bei meinem Master File alle Formeln mit dem Zusatz =INDIRECT(„A!$D$10“) also auch noch mit ". Gibt es da ne Moeglichkeit das zu automatisieren, oder muss ich alle einzeln abaendern? Was mir wohl mit mehr als 600 Zellen wahnsinnig viel Spass bereiten wuerde. Ich wuerds ja auf den Praktikanten abdruecken, dass Dumme ist nur… ich bin der Praktikant Oo
Hallo hangover,
wenn alle Formeln im Blatt verändert werden sollen:
Sub Indirekt()
Dim Zelle As Range
For Each Zelle In ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
Zelle.Formula = "=INDIRECT(""" & Replace(Zelle.Formula, "=", "") & """)"
Next Zelle
End Sub
Gruß
Reinhard
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Genau, per Makro müsste das am einfachsten gehen.
Dafür gehst Du einfach in eine deiner Dateien und klickst auf Extras > Makros > Makro aufzeichnen.
Dann gibst Du einfach alle Zellbezüge, die Du eingeben möchtest, per Hand ein (so wie immer) und klickst dann auf den Makroaufzeichnen Stopp-Button, der von alleine erschienen ist als Du >Makros aufzeichnen Makros > Makroausführen dein neues Makro aus! Es sollten nun automatisch alle deine Bezüge in der geöffneten Datei eingetragen werden. Dann nimmst Du die nächste Datei usw…
Wenn es dich weiter interessiert:
unter Extras > Makros > VisualBasic (VB) kannst Du dir dann anzeigen lassen wie dein Makro in VB-Sprache aussieht. Sollte bei Dir dann in etwa so aussehen:
Sub Makro1()
Range(„A1“).Select
ActiveCell.FormulaR1C1 = „=R10C4“
Range(„A2“).Select
ActiveCell.FormulaR1C1 = „=R11C4“
Range(„A3“).Select
ActiveCell.FormulaR1C1 = „=R16C4“
Range(„A4“).Select
End Sub
Nette Grüße,
Ben
Danke ihr beiden, ich probiers morgen mal im Büro aus 