Tabellenname aus Zelle mit VBA?
Hallo zusammen. Ich habe eine Tabelle mit mehreren Blättern und möchte mittels Makro die Tabellenblätter umbennen. Problematisch ist nur die Variabilität der Daten.
Beispiel
- ich befinde mich in der Tabelle1, wo auch die Makro-Schaltfläche ist
- in Tabelle2, Zelle A1 steht welche Tabelle (Tabelle4) einen neuen Namen erhalten soll
- in Tabelle3, Zelle A1 steht der Namen den die Tabelle bekommen soll (Test)
Ich finde leider keine Lösung wie ich mit VBA ein Worksheet anspreche welches in Tabelle2, Zelle A1 definiert ist und dieses mit dem Namen aus Tabelle3, Zelle A1 belege.
danke im Vorraus für eure Unterstützung
2 Antworten
Was wo stehen muss:
Tabellenblatt: Tabelle1 --- leer / oder Makroschaltfläche
Tabellenblatt: Tabelle2 ---- in A1 steht "Tabelle4"
Tabellenblatt: Tabelle3 ---- in A1 steht "Test"
Tabellenblatt: Tabelle4 ---- leer / Tabellenblatt muss vorhanden sein. (Nach Ausführung des Programmes wird aus dem Namen Tabelle4 der neue Name Test.
Sub TabellenblattUmbenennen2()
zieltabelle = Worksheets("Tabelle2").Range("A1") 'ließt den String "Tabelle4" ein
neuerName = Worksheets("Tabelle3").Range("A1") 'ließt den String "Test" ein
Dim WsTabelle As Worksheet
For Each WsTabelle In Sheets
If WsTabelle.Name = zieltabelle Then
Sheets(zieltabelle).Name = neuerName
Exit For 'Abbruch, da es nur einen gleichen Tabellennamen geben kann. Excel erlaubt nicht mehrere Tabellenblätter mit gleichem Namen.
End If
Next WsTabelle
End Sub
Ich habe da mal was auf die Schnelle zusammengestrickt. Teste mal ausführlich:
Private Sub CommandButton1_Click()
Dim wks As Worksheet
Dim tarWks As String
tarWks = Sheets("Tabelle2").Range("A1").Value
For Each wks In Worksheets
If wks.Name = tarWks Then
wks.Name = Sheets("Tabelle3").Range("A1").Value
End If
Next wks
End Sub
danke, auch dieses Makro funktioniert super