habe in Zelle F20 einen Namen eingegeben. Dieser wurde in die vorletzte Tabelle übertragen(Tabelle 12) Woran liegt dies? dachte es würde dann zu Tabelle 2 springen(falsch gedacht).
wenn eine Hilfsspalte die Indizees der Codenamen der Tabellen enthält
Arbeitsblatt mit dem Namen 'Info'
F
G
20
Info
1
21
Contr.
2
könnte man das so angehen. Fehlerbehandlungen usw. fehlen hier noch ...
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'Variablendeklarationen 'String, Objekt Dim strName As String, wsh As Object 'Wenn die Eingabe in Spalte F=6 erfolgte, dann If Target.Column = 6 Then 'Codename der tabelle aus Spalte E=7 entnehmen strName = "Tabelle" & Target.Offset(0, 1).Value 'Schleife ueber alle Blaetter For Each wsh In ThisWorkbook.Sheets 'Wenn der codename zutrifft, dann If wsh.CodeName = strName Then 'Blatt mit Inhalt von Zelle aus Spalte F=6 umbenennen wsh.Name = Target.Value 'Schleife verlassen Exit For 'Ende Wenn der codename zutrifft, dann End If 'Ende Schleife ueber alle Blaetter Next 'Ende Wenn die Eingabe in Spalte 6 erfolgte, dann End If End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Wow4ik
mit der Mappe kann ich nichts anfangen... 1. kein Code in der Mappe da xlsx 2. kein Zusammenhang erkennbar (für mich)
Sorry.
Hier aber eine neue Bsp. Datei. Die Inhalte(Texte) der Zellen F20 - F35(in der Tabelle Info) sollen in die Tabellennamen unten übernommen werden. Bislang geschieht dies per Hand. Dies soll jedoch automatisch geschehen. Durch Eintippen eines anderen Namens z.B. in F20(ABS) soll unten die 2. Tabelle, welche bislang Contr. hieß nun automatisch den Namen der Zelle F20(ABS) übernehmen. Dies sollte auch für die anderen Zellen/ Tabellen geschehen.
Das Problem ist, das die Tabellen nicht mit 1 beginnen und fortlaufend sind. So ist das Tabellenblatt an 2. Stelle (Contr.) nicht die Tabelle 2, sondern die Tabelle 4.... das Tabellenblatt an der 3. Stelle (Contr. engl) hat nicht die Nummerierung 3, sondern wurde später hinzugefügt und ist nun die Tabelle 19 usw.
wenn Du z.B. per Formel die originalen Blattnamen holst und daneben die gewünschten neuen Namen schreibst, würde das Umbenennen ganz einfach gehen. Nach der Umbenennung ändert sich auch automatisch der per Formel ermittelte Eintrag.
Es soll jedoch so gehen. Ich darf es nicht anders machen. Der Name aus der Zelle soll automatisch in den Tabellennamen umgewandelt werden. Der 2. Name aus der Zelle in den nächsten Tabelleneiter übernommen werden usw.
Leider darf der Vorschlag so nicht übernommen werden. Jedoch weiß ich auch nicht wie ich das sonst hin bekommen soll.
schaue mal, ob Dir das Prinzip passt. Erstelle zum Test mal eine Datei mit mehreren Blättern. Füge den Code ins Tabellenblattmodul von Tabelle1 ein. "Mische" dann die anderen Blätter. Gib dann in Spalte A was ein und schaue, ob das richtige Blatt umbenannt wird.
Code:
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo errorhandler 'Mako verlassen, wenn mehr als eine Zelle betroffen If Target.Cells.Count > 1 Then Exit Sub 'Mako verlassen, wenn Zeilennummer der Eingabe groesser Anzahl Blaetter ist If Target.Row > Sheets.Count Then Exit Sub 'Blattname an Position der entsprechend Zeilennummer aendern Sheets(Target.Row).Name = Target 'Fehlerbehandlung errorhandler: 'Bei Fehler Meldung ausgeben If Err Then MsgBox "Umbenennen nicht möglich - bitte anderen Namen wählen!" End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Der Anfang funktioniert bereits. Die ersten 4 Zellen übernimmt er in die Tabellen so wie er es soll, danach meckert er ab und an und gibt deinen Fehlertext aus. Habe es auch in einer anderen Tabelle versucht. Selbes Spiel. Ab der 5. Zelle gibt er die Fehlermeldung aus.
Ach ja. Die Tabelle in der die Namen eingegeben werden soll NICHT umbenannt werden. Nur die darauf folgenden.
Wenn ich genauso viele Zellen ausfülle wie Tabellen existieren 19 an der Zahl.
So übernimmt er die Namen der 5.,6.,11., 13.,14.,15., & 16. Zelle nicht, alle anderen werden umbenannt.