Formelbezug zu einem Sheet, wo der Sheet-Name variieren kann

Hallo zusammen,

Ich habe ein Problem mit einer Formel aus Tabelle 1, die auf eine Zelle in Tabelle 2 zugreift, wo sich aber der Name über ein Makro hin und wieder ändern kann. Nun hat die Formel aus Tabelle 1 ja keinen Bezug mehr, wenn sich der Name aus Tabelle 2 geändert hat.

Wie könnte man noch die Formel oder ein Makro schreiben, um immer den Wert aus Tabelle 2 zu bekommen (egal welchen Namen Tabelle 2 hat).

Beispiel für Formel: =Tabelle2!A1 – der Name „Tabelle2“ wäre also variabel

Vielen Danke im Voraus,  

Danny.

Hallo Danny,

hier ein kleines Makro-Beispiel, das ein Blatt umbenennt und eine Formel entsprechend anpasst. Hilft dir das?:

Sub umbenennen()
 Dim alterName As String, neuerName As String
 Dim formel As String

 alterName = "Tabelle2"
 neuerName = "Tabelle3"

 Sheets(alterName).Name = neuerName
 formel = Sheets("Tabelle1").Cells(1, 1).Formula
 formel = Replace(formel, alterName & "!", neuerName & "!")
 Sheets("Tabelle1").Cells(1, 1).Formula = formel
End Sub

Gruß, Andreas

Update
Hallo Danny,

ich glaub ich hab da viel zu viel programmiert.
Ich habe eben mal ausprobiert, was passiert wenn man den Namen eines Blattes per Makro ändert: In allen Zellen werden die Bezüge automatsich brav mitgeändert. Es ist also gar kein Makro nötig, um die Bezüge zu korrigieren. Zu mindest mit Excel2007 und 2013 geht es problemlos.
Hattest du das bei dir mal ausprobiert und es ging nicht, oder war es einfach deine Befürchtung.

Gruß, Andreas

Hallo Danny,

ist ja eigentlich gelöst, aber ein Hinweis…

Schreibst du per VBA eine Formel mit dem „Namen“, würde dieses nichts vom Umbenennen des Sheets wissen, damit würde die Formel falsch und würde sich auch nicht mehr ändern.

Allen Sheets ist in EXCEL neben der „Aufschrift“, die man im Sheet sieht auch noch ein fester Name gegeben. Der sollte mE auch nicht verändert werden, wenn er einmal passt. Die Aufschrift ist Optik. Beispiel:

Sub test()
daSindDieDaten.Name = „Sheet Beschriftung“
End Sub
Dabei ist „daSindDieDaten“ der feste Name, den man im VBA Editor dem Sheet geben kann (Eigenschaft „(Name)“, nicht „Name“) :wink:

In Makros kann ich so mit dem Objekt „daSindDieDaten“ immer auf das Sheet zugreifen, egal welche Aufschrift es gerade hat. Außerdem geht natürlich:

Formel: = daSindDieDaten.Name & „!A1“
(Hoffe das das eine richtige Formel ergibt.

fg

Dirk.P