Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblätter umbenen mit Namen aus Spalte

Tabellenblätter umbenen mit Namen aus Spalte
28.05.2017 17:04:02
Thorsten
Hallo,
ich habe hier eine Excel Tabelle, in der im ersten Tabellenblatt in Spalte A Namen stehen, das zweite Tabellenblatt dient nur als Hilfstabelle zur Notenberechnung, das dritte Tabellenblatt Template enthält meinen Bewertungsbogen. Nun soll folgendes passieren. Excel soll das Tabellenblatt Template anhand der Namesliste umbenennen und ein neues Tabellenblatt mit dem jeweils korrekten Namen erstellen, Template dient hier als Vorlage. Ich hoffe, dass Ihr versteht, was ich meine.
Zur Sicherheit habe ich ein Beispiel hochgeladen, in dem ich das für den ersten Namen per Hand gemacht habe. Es wäre toll, wenn mir jemand helfen könnte.
https://www.herber.de/bbs/user/113837.xlsx
VG
Thorsten

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter umbenen mit Namen aus Spalte
28.05.2017 17:05:44
Hajo_Zi
Hallo Torsten,
das geht nicht per Hand.
VBA wurde ja abgelehnt da XLSX Datei.

AW: Tabellenblätter umbenen mit Namen aus Spalte
28.05.2017 17:22:10
Sepp
Hallo Torsten,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub TabellenAnlegen()
Dim rng As Range
Dim strName As String

With Sheets("Namen")
  For Each rng In .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
    strName = ValidSheetName(rng)
    If Len(strName) Then
      Sheets("Template").Copy after:=Sheets(Sheets.Count)
      With Sheets(Sheets.Count)
        .Name = strName
        .Range("C2") = strName
      End With
    End If
  Next
End With
End Sub

Private Function ValidSheetName(ByVal strName As String) As String
'Returns a valid name for excel-sheets
Dim objRegExp As Object, strTmp As String

On Error GoTo ErrExit

Set objRegExp = CreateObject("vbscript.regexp")

With objRegExp
  .Global = True
  .Pattern = "[\/\\:\*\?\[\]]"
  .IgnoreCase = True
  strTmp = Trim$(.Replace(strName, ""))
  .Pattern = "[ ]+"
  strTmp = .Replace(strTmp, " ")
End With

If Len(strTmp) Then
  ValidSheetName = Left(strTmp, 31)
Else
  GoTo ErrExit
End If

Exit Function

ErrExit:

ValidSheetName = ""
End Function

Gruß Sepp

Anzeige
AW: Tabellenblätter umbenen mit Namen aus Spalte
28.05.2017 22:24:33
Thorsten
Danke für die super schnelle Antwort, werde testen und morgen berichten!
AW: Tabellenblätter umbenen mit Namen aus Spalte
29.05.2017 21:38:53
Thorsten
So habe Sepps Vorschlag eingebaut und eine Tabelle erstellt, in der Makros erlaubt sind, leider passiert beim Ausführen rein gar nichts. Sorry, aber ich habe wenig Ahnung von VBA, deshalb hier die Tabelle als Link, dann sieht man es besser.
https://www.herber.de/bbs/user/113878.xlsm
AW: Tabellenblätter umbenen mit Namen aus Spalte
30.05.2017 03:43:17
Piet
Hallo
anbei die Beispieldatei zurück. Ich habe den Code etwas anders aufgebaut und einen Button zum Starten des Makros eingefügt. Der hatte gefehlt, deshalb klappte es nicht.
mfg Piet
https://www.herber.de/bbs/user/113880.xlsm
Anzeige
AW: Tabellenblätter umbenen mit Namen aus Spalte
30.05.2017 06:51:20
Thorsten
Vielen Dank für die prompte Lieferung! Auf den ersten Blick funktioniert es genauso wie es soll und erspart mir eine Menge Arbeit. Super!
VG
Thorsten

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige