Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1688to1692
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel-Tabellen umbenennen mit VBA

Excel-Tabellen umbenennen mit VBA
29.04.2019 12:05:41
Mel
Hallo zusammen,
ich möchte, dass in 8 untereinander stehenden Zellen Begriffe eingegeben werden können vom Benutzer. Diese sollten dann in einem ausgeblendeten Bereich als Überschriften für jeweils eine Tabelle kopiert werden - soweit so gut.
Diese Tabellen & deren Inhalte müssen als Dropdown-Menü herhalten, daher muss Tabellenüberschrift und der Tabellenname übereinstimmen - und hier ist mein Problem: Per Makro sollen die Werte aus den Zellen als Überschriften reinkopiert werden aber wie kann ich jetzt dafür sorgen, dass auch der Tabellenname genauso geändert wird?
Komme durch googlen und probieren einfach nicht weiter.
Vielen Dank im Voraus und viele Grüße.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Tabellen umbenennen mit VBA
29.04.2019 12:27:45
Matthias
Hallo
Ich geh mal davon aus das Du intelligente Tabellen meinst!?
Wenn Du nun schreibst "soweit so gut," hast Du also die Überschriften bereits eingetragen.
Dann kannst Du doch auch den Namen des ListObjects gleich mit ändern.
Gruß Matthias
AW: Excel-Tabellen umbenennen mit VBA
29.04.2019 14:24:31
Mel
Hallo Matthias,
danke für deine schnelle Antwort.
Ja ich habe es hinbekommen die Bezeichnungen per VBA als Überschriften der Tabellen einzufügen.
Allerdings sagt mit "intelligente Tabellen" nichts und von ListObjects habe ich gelesen aber nicht verstanden wie ich das umsetzen kann damit den Tabellennamen auch zu ändern gemäß der Überschrift.
Gruß Mel
Anzeige
AW: Excel-Tabellen umbenennen mit VBA
29.04.2019 14:29:39
Mel
Ergänzend muss ich noch dazu sagen,
dass die 8 Tabellen sich nebeneinander in einem Arbeitsblatt befinden.
Wenn die Bezeichnungen mehrmals geändert werden, dass passt auch der Befehl
"ActiveSheet.ListObjects("Tabelle1").Name = ..." bei der nächsten Änderung nicht mehr...
ListObjects(Index).Name = ...
29.04.2019 14:48:53
Matthias
Hi
dann musst Du den Index benutzen wobei ich nicht weiß ob die 8 Tabellen die einzigen
ListObjects sind. Muss man also evtl anpassen.
ActiveSheet.ListObjects(1).Name = ..." ' das erste Objekt
ActiveSheet.ListObjects(2).Name = ..." 'das zweite Objekt usw.
also nach diesem Schema ...
In eine Schleife gepackt als ein Skript(hier nur als Beipiel!)
For x = 1 to 8
ActiveSheet.ListObjects(x).Name ="NeuerName" & x
Next
Du solltest aber sicherstellen das es den neuen Namen noch nicht gibt.
Gruß Matthias
Anzeige
AW: ListObjects(Index).Name = ...
29.04.2019 15:31:27
Mel
Hi,
bezüglich den genannten Codes (ActiveSheet.ListObjects(1).Name...), gebe ich damit aber meinen 8 Tabellen feste Namen d.h. wenn einige Tabellen dann den neuen Namen bekommen und dann aber wieder geändert werden sollen, können diese nicht mehr angesprochen werden.
Ich muss mich nochmal anders ausdrücken..
Ich habe eine Liste (G47 bis G55), in der der Benutzer seine Gruppen eintragen soll
Gruppe
FBG
Kabel
Mechanik
...
AW: ListObjects(Index).Name = ...
29.04.2019 17:38:18
Matthias
Hallo
Zitat
wenn einige Tabellen dann den neuen Namen bekommen und dann aber wieder geändert werden sollen, können diese nicht mehr angesprochen werden.
Wieso nicht?
Der Index ändert sich doch nicht!
Gruß Matthias
Anzeige
was meinst Du denn mit Tabellennamen?
29.04.2019 14:41:37
Matthias
Hallo
Meinst Du einen definierten Namen für einen Bereich oder den Registerblattnamen?
Du kannst doch mit Range("DeinBereich").Name= "xyz" den Namen umbenennen.
Zitat:
Ja ich habe es hinbekommen die Bezeichnungen per VBA als Überschriften der Tabellen einzufügen.
Zeig doch mal den Code, evtl. wird man da schlauer daraus.
Gruß Matthias
AW: was meinst Du denn mit Tabellennamen?
29.04.2019 15:33:24
Mel
Diese Begriffe sollen in den Zeilen B3 bis I3 als eingefügt werden (nebeneinander über Inahlte einfügen: transponieren). Unter B3, C3, D3, E3 etc. befinden sich jeweils weitere Begriffe, die hier unbedeutend sind, aber die die Tabelle ausmachen. Also Beispielsweise die erstellte Tabelle in B3 sieht wie folgt aus:
B3 FBG (=Tabellenüberschrift aus G48)
B4 Schritt 1
B5 Schritt 2
B6 Schritt 3
So sieht jede Tabelle aus nur mit anderen Übreschriften - diese sollen wie folgt zugeordnet werden. Der Begriff auf G48 muss in B3, G49 in C3, G50 in D3 usw.
Das ist per Makro aus kein Problem. Aber die Tabelle in Spalte B hat momentan die Überschrift "FBG" (B3) und den Tabellennamen "FBG", beides stammt aus G48. Wenn jetzt in G48 "Optik" eingetragen wird, soll in B3 als Überschrift Optik eingetragen werden UND der Tabellennamen auch von FBG in "Optik" geändert werden und genau das stellt mein Problem dar..
wie kann ich die einzelnen Tabellen als Variablen ansprechen und ihr Tabellenname dann gemäß den Bezeichnungen in Spalte G ändern?
Anzeige
AW: was meinst Du denn mit Tabellennamen?
29.04.2019 15:38:27
Mel
Mein Code:
Problem: er funktioniert nicht und zudem spricht er die Tabellen als FBG, Kabel etc. an und nicht als Variable..
Sub Go()
' Makro benennt Tabellenüberschriften in Info um gemäß der eingegebenen Arbeitspakete. Die  _
Tabellennamen werden ebenfalls entsprechend ergänzt.
'Liste mit Arbeitspaket-Namen kopieren
Range("G48:G55").Select
Selection.Copy
'Bezeichnungen nebeneinander einfügen (B3:I3):
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ActiveCell.Select
'Variablen definieren:
Dim AP1 As String
AP1 = Range("G48").Value
Dim AP2 As String
AP2 = Range("G49").Value
Dim AP3 As String
AP3 = Range("G50").Value
Dim AP4 As String
AP4 = Range("G51").Value
Dim AP5 As String
AP5 = Range("G52").Value
Dim AP6 As String
AP6 = Range("G53").Value
Dim AP7 As String
AP7 = Range("G54").Value
Dim AP8 As String
AP8 = Range("G55").Value
'Überschriften und im 2. Schritt Tabellennamen:
Range("B3").Value = AP1
ActiveSheet.ListObjects("FBG").Name = AP1
Range("C3").Value = AP2
ActiveSheet.ListObjects("Firmware").Name = AP2
Range("D3").Value = AP3
ActiveSheet.ListObjects("Kabel").Name = AP3
Range("E3").Value = AP4
ActiveSheet.ListObjects("Mechanik").Name = AP4
Range("G3").Value = AP6
ActiveSheet.ListObjects("Filter").Name = AP6
Range("H3").Value = AP7
ActiveSheet.ListObjects("Verkleidung").Name = AP7
Range("I3").Value = AP8
ActiveSheet.ListObjects("Kaufteil").Name = AP8
Range("F3").Value = AP5
ActiveSheet.ListObjects("Optik").Name = AP5
End Sub

Anzeige
AW: was meinst Du denn mit Tabellennamen?
29.04.2019 16:03:54
Daniel
Hallo Mel,
ich stoße ja sonst nicht so in dieses Horn, aber das Ding hier als VBA - gut zu verkaufen, ist schon ein starkes Stück!
Mir ist auch nach Verfolgen der bisherigen Beiträge nicht klar, was wann wo passieren soll, was davon bisher klappt und was nicht. Vielleicht solltest du mal deine Mappe hier hochladen, damit man wenigstens versuchen kann, deine Pläne nachzuvollziehen?
Gruß
Daniel
AW: was meinst Du denn mit Tabellennamen?
02.05.2019 11:09:34
Mel
Hallo,
ich bräuchte lediglich einen VBS Code um bei meinen 8 Tabellen die Tabellenüberschriften zu ändern und zwar in diejenigen Begriffe die der Benutzer in einer separate Tabelle untereinander eingibt.
Dieser Schritt stellt nicht das Problem dar, sondern die "Tabellennamen" den Überschriften anzupassen (unter Tabellentools - Entwurf - Tabellenname).
Danke
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige