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.

Tabellenblätter automatisch benennen
#1
Hallo,

ich brauch mal wieder Hilfe. Ich habe habe Netz einiges gefunden, aber irgendwie nicht das richtige für mich oder ich kenne mich einfach noch zu wenig mit VBA aus.
Ich erkläre kurz mal.

Ich möchte gerne 15 Tabellenblätter automatisch umbenennen und zwar mit Nachname, Vorname. Die Namen habe ich in einer Tabelle auf einen einen anderen Tabellenblatt. Die Nachnamen stehen in Spalte B  von "B2:B16" und die Vornamen in Spalte C von "C2:C16" und nun sollen am liebsten die Tabellenblätter  "1_TN bis 15_TN"  umbenannt werden und zwar mit Komma dazwischen. Bisher habe ich für mich nur eine einfach Lösung gefunden und zwar durch einen Button auf den einzelnen Tabellenblättern, die das Blatt umbenennen und zwar lautet der Code:

Sub TabellennamenSetzen()
Dim Zelle As String
Zelle = "a1"
ActiveSheet.Name = ActiveSheet.Range(Zelle).Text
End Sub



In der Zelle A1 habe ich mir eine Verkettung gebaut, so dass der Name komplett angezeigt wird. Das funktioniert auch, aber eigentlich wäre es mir lieber, wenn es automatisch über die Tabellenliste unter "Noten_TN" funktioniert, wenn ich Namen eingebe. Ich habe schon so einiges probiert, aber irgendwie klappt es nicht.

Ich habe auch als Ansatz meine Datei mitgesendet.

.xltm   Noten_AP_Vorlage.xltm (Größe: 1.011,57 KB / Downloads: 3)
Vielleicht hat jemand eine Idee für mich
Antwortento top
#2
Hallo,
Sub aaa()
  Dim i As Long
  Dim varNamen As Variant
  varNamen = Worksheets("Noten_TN").Range("B2:C16").Value
  For i = 1 To 15
    If varNamen(i, 1) & varNamen(i, 2) <> "" Then
      Worksheets(i & "_TN").Name = varNamen(i, 1) & ", " & varNamen(i, 2)
    End If
  Next i
End Sub
Gruß Uwe
Antwortento top
#3
Hallo Uwe,

das ist schon der richtige Weg. Nur kenne ich ich mich zu wenig aus. Wie löst er sich automatisch aus und was ist, wenn sich der Name mal ändert? Hierzu muss ich ja einen Button setzen und er meckert auch, liegt außerhalb des Index-Bereich.

Vielen Dank für die Hilfe
Antwortento top
#4
Hallo,

füge folgenden Code in das schon vorhandene VBA-Modul des Tabellenblattes Noten_TN ein:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim i As Long
  If Not Application.Intersect(Range("B2:C16"), Target) Is Nothing Then
    For i = 1 To 15
      With Sheets(i + 2)
        If .Range("A1").Value = ", " Then
          .Name = i & "_TN"
        Else
          .Name = .Range("A1").Value
        End If
      End With
    Next i
  End If
End Sub
Gruß Uwe
Antwortento top
#5
Oh super,

vielen Dank es  klappt
Antwortento top


Gehe zu:


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