Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Intelligente Tabelle benennen
#1
Hallo,

ich möchte mit folgendem Code bei Änderung einer Zelle den Namen der intelligenten Tabelle in diesem Tabellenblatt ändern.
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$D$1" Then
ActiveSheet.ListObjects("Tabelle1").Name = "Test" & Range("D1").Value
End If
End Sub
Ich habe aber natürlich das Problem, wenn ich die Zelle D1 wieder ändere, hat sich auch der Tabellenname geändert und dann passt der Befehl "ActiveSheet.ListObjects("Tabelle1").Name" bei der nächsten Änderung nicht mehr.

Wie kann ich zuvor den aktuellen Namen der intelligenten Tabelle auslesen und als Variable definieren?

In diesem Tabellenblatt gibt es nur eine intelligente Tabelle.
LG Herbert
Windows 10
Office 365
Antworten Top
#2
Hallo Herbert,

eine simple Lösung wäre doch nach dem Umbenennen den neuen Namen zu speichern. Das ist dann auch unabhängig von irgendeiner Anzahl.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#3
Hallo nochmal,

ich habe noch weiter gesucht und folgende Variante probiert.
Funktioniert soweit.


Code:
ActiveSheet.ListObjects(1).Name = "Test" & Range("D1").Value

Da ich nur eine intelligente Tabelle pro Tabellenblatt habe, habe ich statt dem Namen nur eine 1 gesetzt.

Stimmt meine Annahme bzw. welche Probleme könnte ich bekommen?
LG Herbert
Windows 10
Office 365
Antworten Top
#4
(26.07.2016, 14:39)Ego schrieb: Hallo Herbert,

eine simple Lösung wäre doch nach dem Umbenennen den neuen Namen zu speichern. Das ist dann auch unabhängig von irgendeiner Anzahl.

Hallo Helmut,

unsere Beiträge haben sich überschnitten,

wie würde das aussehen, ich stehe da irgendwie auf der Leitung.
LG Herbert
Windows 10
Office 365
Antworten Top
#5
Hallo,

den neuen Namen zB in einer Zelle ablegen und vor dem Ändern den dann alten Namen aus dieser Zelle lesen.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#6
Hallo helmut

ich hab es so versucht. Schaut zwar irgendwie komisch aus, aber funktioniert.
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Listname As String
Listname = Range("O1").Value
If Target.Address = "$D$1" Then
ActiveSheet.ListObjects(Listname).Name = "Test" & Range("D1").Value
Range("O1").Value = "Test" & Range("D1").Value
End If
End Sub
LG Herbert
Windows 10
Office 365
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste