Tabellenblätter umbenennen aus Zellinhalt
Hallo Ihr guten Geister diese Forums,
kann mir jemand bei einem Makro helfen welches aus einer
Zelle (A1) den Namen (Inhalt der Zelle: z.B.: Max) holt und aus diesem Namen das Tabellenblatt, nennen wir es erstmal "Test", eine Umbenennung des Blattes vornehmen sodaß Test jetzt Max heißt. Außerdem soll der Tabellenblattreiter noch eine andere Farbe (grün) zuteilt werden.
Ich hoffe es ist plausibel geschildert was mein Problem ist.
Vielen Dank für Eure Bemühungen im voraus.
Gruß Karsten
Antwort schreiben
Antwort 1 von rainberg vom 19.09.2020, 07:49 Options
Hallo Karsten,
folgendes Makro sucht das Tabellenblatt "Test", bennent es entsprechend des Eintrages in A1 um und setzt die Tab-Farbe auf grün.
Option Explicit
Sub umbenennen()
Dim intI As Integer
For intI = 1 To Worksheets.Count
If Worksheets(intI).Name = "Test" Then
With Worksheets(intI)
.Name = Worksheets(intI).Range("A1").Value
.Tab.ColorIndex = 4
End With
End If
Next
End Sub
Gruß
Rainetr
Antwort 2 von kvtv vom 20.09.2020, 09:59 Options
Hallo Reiner,
danke für Deine schnelle Antwort. Das mit dem Makro funktioniert (Danke erstmal), soll aber die Eingabe in der Zelle ständig überwachen. Das heißt wenn ich in diese Zelle (A1) einen Namen eintrage soll automatisch das Tabellenblatt umbenannt und eingefärbt werden. Noch besser wäre es wenn ein Name in besagte Zelle (A1) geschrieben wird ein Tabellenblatt (nennen wir es mal Muster) hinter das Tabellenblatt Muster Kopiert wird und in diesem Zusammenhang nach dem Zellinhalt umbenannt und eigefärbt werden. Ich hoffe das ist nicht zu unverschämt? Geht das überhaupt?
Vielen Dank für die Bemühungen.
Gruß Karsten
Antwort 3 von Hajo_Zi vom 20.09.2020, 10:44 Options
Hallo Karsten,
dann schreibe unter der Tabelle im VBA Editor
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then ActiveSheet.Name = Target
End Sub
Gruß Hajo
Antwort 4 von rainberg vom 20.09.2020, 11:15 Options
Hallo Karsten,
wenn das Umbenennen und Einfärben für alle Tabellen gelten soll, dann schreibe folgenden Code in den Codebereich von "DieseArbeitsmappe".
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
With ActiveSheet
If Target.Address = "$A$1" Then
.Name = Target.Value
.Tab.ColorIndex = 4
End If
End With
End Sub
Gruß
Rainer
Antwort 5 von kvtv vom 20.09.2020, 12:44 Options
Danke erstmal für Euren schnellen Antworten. Werde beide Lösungen ausprobieren und gebe dann wieder Bescheid ob es funktioniert.
Danke noch mal.
Gruß Karsten
Antwort 6 von kvtv vom 20.09.2020, 13:14 Options
Hallo Ihr beiden,
habe beides soeben ausprobiert, aber es funktioniert nicht.
Vielleicht noch mal zur Info meine Arbeitsmappe hat 11 Abreitsblätter immer in der Zelle A1 steht der Name welcher in der ersten Tabelle in verschiedene Zellen eingetragen wird. Aber jedes Tabellenblatt holt sich von dem ersten Tabellenblatt den Namen in Zelle A1. Jedes Tabellenblatt wo der Eintrag größer Null ist soll dann auch Namengeber für das Tabellenblatt selbst sein und auf grün eingefärbt werden, ist ein Eintrag in Zelle A1 kleine oder gleich 0 dann Tabellenblattreiter in rot und der Name vielleicht "Frei". Ich hoffe ich habe nun keine zusätzliche Verwirrung gestiftet und es wird so vielleicht eindeutiger.
Vielen Dank im voraus.
Gruß Karsten
Antwort 7 von rainberg vom 20.09.2020, 14:29 Options
Hallo Karsten,
Deine Schilderung ist alls andere als klar, da kann nur noch eine Beispieltabelle helfen.
Einerseits schreibst Du, dass in den Zellen A1 der Name steht, der aus verschiedenen Zellen (welche Zellen???) der ersten Tabelle geholt wird (da stellt sich die Frage nach dem "Wie" Formel oder Makro???), anderserseits schreibst Du dass die Namensvergabe nach dem Kriterium 0 oder 1 erfolgen soll???
Was steht denn nun in A1 ???
Gruß
Rainer
Antwort 8 von kvtv vom 23.09.2020, 11:54 Options
Hallo Reiner, auch hier möchte ich Dir noch eine Antwort geben. Ist seit kurzem ein wenig kaotisch in meinem Leben. Hatte fast vergessen das ich ja noch eine zweite Frage gestellt hatte. Ich versuche Dir eine Datei zusammen zustellen, damit alles klarer wird (dauert aber ein wenig). Kannst Du mir denn sagen wie ich Dir die Tabelle zukommen lassen kann. Gib es hier so was wie eine persönliche Nachricht oder ähnliches?
Vielen dank im voraus
Gruß Karsten