Gibt es eine Möglichkeit, dass wenn ich nun in Zelle B7 "test_3" eintrage, dass dann die Tabelle in Spalte H unter "Entwurf" -> automatisch den Namen "test_3" erhält? (Siehe Anhang)
Sprich, kann ich den Tabellenname dynamisch zuweisen?
ich verstehe deine Frage nicht. Wenn du jetzt (ausgehend von deiner Musterdatei) in B7 deinen Eintrag machst, wird er doch automatisch in H3 geschrieben. Sollte dich die Null stören, die ohne Eintrag entsteht, kannst du sie benutzerdefiniert mit
Code:
0;;
ausblenden.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
weil ich die Problemstellung interessant fand, habe ich eine kleine Lösung per Vba ausgearbeitet. Das Ganze ist auf Deine Beispielmappe ausgerichtet. Bei jeder Änderung der Zellen in der Tabelle "Hauptkategorie" wird der Tabellenname entsprechend geändert.
Ich nutze den Index der zugehörigen Tabellen. Zeile 2 der Hauptkategorie entspricht Lisobject(2) Zeile 3 der Hauptkategorie entspricht Lisobject(3) usw.
Unten der Code gehört in das Code Modul der Tabelle mit den Listobjecten:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Dim lngErsteTabZ As Long Dim lngAuswahlZeile As Long Dim rngTab As Range
Set rngTab = ActiveSheet.ListObjects(1).DataBodyRange If Not Intersect(Target, rngTab) Is Nothing Then If Application.CountIf(rngTab, Target.Value) > 1 Then MsgBox "Es existiert bereits eine Tabelle mit dem selben Namen!" Application.EnableEvents = False Application.Undo Application.EnableEvents = True Else If Target <> "" Then lngErsteTabZ = Target.ListObject.ListRows(1).Range.Row lngAuswahlZeile = Target.Row - lngErsteTabZ + 1 ActiveSheet.ListObjects(lngAuswahlZeile + 1).Name = Target.Value End If End If End If
großartig, vielen Dank!! Du hast genau verstanden, was meine Problemstellung war. :23:
Könntest Du mir eventuell noch 1-2 Sätze zur Erklärung neben die Codes schreiben? Ich finde VBA super spannend, jedoch empfinde ich es als äußerst sehr schwer die einzelnen Codes nachzuvollziehen..