VBA-Code: |
Private Sub Worksheet_Change(ByVal Target As Range) 'Code in das entsprechende Tabellenblatt! If Range("E4") "" Then ActiveSheet.Name = Target.Value End Sub Gruß Jürgen |
VBA-Code: |
Private Sub Worksheet_Change(ByVal Target As Range) 'Code in das entsprechende Tabellenblatt! If Len(Range("E4")) < 32 And Range("E4") <> "" Then ActiveSheet.Name = Range("E4").Value End If End Sub Gruß Jürgen |
VBA-Code: |
Private Sub Worksheet_Change(ByVal Target As Range) 'Code in das entsprechende Tabellenblatt! If Len(Range("E4")) < 32 And Range("E4") <> "" Then If Sheets(Sheets.Count).Name <> Range("E4").Value Then ActiveSheet.Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = Range("E4") End If End If End Sub Gruß Jürgen |
'Code in "DieseArbeitsmappe"
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim lngI As Long
If Sh.Name "Muster" Then Exit Sub
If Target.Address "$E$4" Then Exit Sub
If Len(Target) "" Then
For lngI = 1 To Sheets.Count
If Sheets(lngI).Name = "" & Target Then
MsgBox "Das Blatt " & Target & " gibt es schon!"
Exit Sub
End If
Next lngI
Sheets("Muster").Copy After:=Sheets(lngI - 1)
ActiveSheet.Name = Target
End If
End Sub
Hier könnte/sollte/müsste man noch prüfen, ob E4.Value ein gültiger Blattname ist.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
' bisher:
On Error GoTo Fehler:
MsgBox Selection.Address
If Selection.Count > 1 Then
For C = 1 To Selection.Count
If Intersect(Selection(C), Range("E5:G56", "B5:B56")) Is Nothing Then _
Exit Sub
AnzeigeAn
B = Tabelle2.Rows(2).Find(What:=Range("B3"), LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column - 2
For A = 0 To 5
If A 3 Then
If A = 5 Then
Tabelle2.Cells(Selection(C).Row - 1, B - 1) = _
Cells(Selection(C).Row, 2).Value
Else
Tabelle2.Cells(Selection(C).Row - 1, B + A).Value = _
Cells(Selection(C).Row, 3 + A).Value
End If
End If
Next A
Next C
Else
If Intersect(Target, Range("E5:G56", "B5:B56")) Is Nothing Then Exit Sub
AnzeigeAn
B = Tabelle2.Rows(2).Find(What:=Range("B3"), LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column - 2
For A = 0 To 5
If A 3 Then
If A = 5 Then
Tabelle2.Cells(Target.Row - 1, B - 1) = Cells(Target.Row, 2).Value
Else
Debug.Print Cells(Target.Row, 3 + A)
Tabelle2.Cells(Target.Row - 1, B + A).Value = _
Cells(Target.Row, 3 + A).Value
End If
End If
Next A
End If
Fehler:
' neu:
On Error GoTo Fehler:
If Intersect(Target, Range("E5:G56", "B5:B56")) Is Nothing Then Exit Sub
B = Tabelle2.Rows(2).Find(What:=Range("B3"), LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column - 2
AnzeigeAn
For Each rngZ In Intersect(Target, Range("E5:G56", "B5:B56"))
For A = 0 To 5
If A 3 Then
If A = 5 Then
Tabelle2.Cells(rngZ.Row - 1, B - 1) = Cells(rngZ.Row, 2).Value
Else
Debug.Print Cells(rngZ.Row, 3 + A)
Tabelle2.Cells(rngZ.Row - 1, B + A).Value = _
Cells(rngZ.Row, 3 + A).Value
End If
End If
Next A
Next rngZ
Fehler:
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Öffne Excel und gehe zu dem Tabellenblatt, das du beschriften möchtest.
Drücke ALT + F11, um den VBA-Editor zu öffnen.
Füge den folgenden VBA-Code in das entsprechende Tabellenblatt ein:
Private Sub Worksheet_Change(ByVal Target As Range)
If Len(Range("E4")) < 32 And Range("E4") <> "" Then
ActiveSheet.Name = Range("E4").Value
End If
End Sub
Schreibe einen Namen in die Zelle E4. Das Tabellenblatt wird automatisch mit diesem Namen beschriftet.
Speichere die Datei. Achte darauf, dass du sie im .xlsm-Format speicherst, um die Makros zu aktivieren.
Fehler: "Das Blatt mit diesem Namen existiert bereits."
Fehler: Laufzeitfehler, wenn die Zelllänge über 31 Zeichen liegt.
Du kannst ein Makro erstellen, das ein neues Blatt automatisch erstellt, wenn du einen neuen Namen in einer bestimmten Zelle eingibst. Hier ist ein Beispiel:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$4" Then
If Len(Target) < 32 And Target <> "" Then
Sheets.Add(After:=Sheets(Sheets.Count)).Name = Target
End If
End If
End Sub
VBA für die automatische Erstellung eines neuen Blattes:
Wenn du ein neues Blatt mit einem Namen erstellst, kannst du die folgende Logik verwenden:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$4" Then
If Len(Target) < 32 And Target <> "" Then
Sheets.Add(After:=Sheets(Sheets.Count)).Name = Target
End If
End If
End Sub
Erstellen einer Vorlage:
Du kannst eine Vorlage für dein neues Tabellenblatt anlegen. Kopiere das Musterblatt und benenne es nach dem Namen in E4.
1. Wie kann ich mehrere Blätter gleichzeitig beschriften?
Du kannst eine Schleife in deinem VBA-Code implementieren, um alle gewünschten Blätter zu durchlaufen und diese entsprechend zu beschriften.
2. Kann ich die Blätter mit spezifischen Formaten erstellen?
Ja, du kannst ein vorgefertigtes Tabellenblatt kopieren und alle notwendigen Formatierungen und Formeln beibehalten, wenn du ein neues Blatt erstellst.
3. Was passiert, wenn ich einen ungültigen Blattnamen eingebe?
Excel erlaubt keine Blattnamen mit bestimmten Zeichen (z.B. /, \, ?, *, [ oder ]). Stelle sicher, dass der Name in E4 diesen Anforderungen entspricht, um Fehler zu vermeiden.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen