Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1596to1600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblattname der akt. Zelle finden

Tabellenblattname der akt. Zelle finden
12.12.2017 20:36:48
Lutz
Hallo,
Ich möchte per VBA prüfen, ob mit dem Inhalt der aktiven Zelle bereits ein Tabellenblatt existiert. Wenn nicht, dann soll ein Neues mit diesem Namen erstellt werden.
"Sheets.Add" hat mir der Makrorecorder hergegeben. Für den Rest fehlen mir leider die Kenntnisse.
Danke vielmals.
Gruß Lutz

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblattname der akt. Zelle finden
12.12.2017 20:48:27
Sepp
Hallo Lutz,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub addSheet()
Dim strCell As String
strCell = ActiveCell.Text
If Not SheetExist(strCell) Then
  If IsValidSheetName(strCell) Then
    Call ThisWorkbook.Worksheets.Add(After:=Sheets(Sheets.Count))
    ActiveSheet.Name = strCell
  Else
    MsgBox "'" & strCell & "' ist kein gültiger Blattname!"
  End If
End If
End Sub

Private Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook, Optional ByVal byCodeName As Boolean = False) As Boolean
Dim wks As Object
On Error GoTo ERRORHANDLER
If Wb Is Nothing Then Set Wb = ThisWorkbook
For Each wks In Wb.Sheets
  If byCodeName Then
    If LCase(wks.CodeName) = LCase(sheetName) Then SheetExist = True: Exit Function
  Else
    If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
  End If
Next
ERRORHANDLER:
SheetExist = False
End Function

Private Function IsValidSheetName(ByVal strName As String) As Boolean
'Validates a gifen string
Dim objRegExp As Object

Set objRegExp = CreateObject("vbscript.regexp")

With objRegExp
  .Global = True
  .Pattern = "^[^\/\\:\*\?\[\]]{1,31}$"
  .IgnoreCase = True
  IsValidSheetName = .test(strName)
End With

Set objRegExp = Nothing

End Function

Gruß Sepp

Anzeige
AW: Tabellenblattname der akt. Zelle finden
12.12.2017 20:53:18
Lutz
Auch noch mit allen Raffinessen. Danke. Wo gibt's die Makrobaumaschine? ;0)
Gruß Lutz

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige