Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1040to1044
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

ursprünglicher Tabellenblattname

ursprünglicher Tabellenblattname
25.01.2009 23:14:00
Alex
Guten Abend zusammen,
brauche dringend eure Hilfe.
mit diesem Code benenne ich Tabellenblätter je nach Eintragung (Namen) in Zelle E4
eines jeden Blattes.
Mein Problem:
wenn der Name in Zelle E4 gelöscht wird, dann soll der ursprüngliche TabName wieder Name des Tabellenblattes sein.
Wie geht das?

Sub Blattnamen ()
Dim Blatt As Object
On Error Resume Next
Sheets("Übersicht").Visible = False
For Each Blatt In ActiveWorkbook.Worksheets
If Blatt.Visible = True Then
Blatt.Activate
Blatt.Name = ActiveSheet.Cells(4, 5) 'zelle E4 (5.Spalte,4.Zeile)
End If
Next Blatt
Sheets("Übersicht").Visible = True
End Sub


Danke,
Alex

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ursprünglicher Tabellenblattname
25.01.2009 23:52:00
Tino
Hallo,
versuch es mal so.
Sub Blattnamen()
Dim Blatt As Worksheet

On Error Resume Next
For Each Blatt In ActiveWorkbook.Worksheets
    If Blatt.Name <> "Übersicht" Then
     With Blatt
        If .Cells(4, 5) <> "" Then
             .Name = .Cells(4, 5)  'zelle E4 (5.Spalte,4.Zeile) 
        Else
             .Name = .CodeName
        End If
     End With
    End If
Next Blatt



End Sub


Gruß Tino

Anzeige
AW: ursprünglicher Tabellenblattname
25.01.2009 23:54:37
Daniel
Hi
da der Ursprüngliche Tabellenblattname nirgenwo gespeichert wird, glaube ich kaum, daß das funktioniert.
aber vielleicht erfüllt ja das hier deine Wünsche:

Sub Blattnamen ()
Dim Blatt As Worksheet
For Each Blatt In ActiveWorkbook.Worksheets
If Blatt.Name""Übersicht then
if Blatt.cells(4,5)="" then
Blatt.Name = "Tabelle" & Blatt.Index
Else
Blatt.Name = Blatt.Cells(4,5).value
End if
End If
Next Blatt
End Sub


gruß, Daniel

AW: ursprünglicher Tabellenblattname
26.01.2009 00:01:10
Josef
Hallo Alex,
und woher soll Excel wissen wie der Blattname vorher lautete?
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub RenameSheets()
    Dim objWS As Worksheet
    
    For Each objWS In ThisWorkbook.Worksheets
        If objWS.Visible = True Then
            If IsValidSheetName(objWS.Cells(4, 5).Text) And _
                Not SheetExist(objWS.Cells(4, 5).Text) Then
                objWS.Name = objWS.Cells(4, 5)
            Else
                If objWS.Name <> objWS.Cells(4, 5).Text Then
                    objWS.Name = objWS.CodeName
                End If
            End If
        End If
    Next
    
End Sub

Public Function IsValidSheetName(ByVal strName As String) As Boolean
    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

Private Function SheetExist(ByVal sheetName As String, Optional WbName As String) As Boolean
    Dim wks As Worksheet
    On Error GoTo ERRORHANDLER
    
    If WbName = "" Then WbName = ThisWorkbook.Name
    
    For Each wks In Workbooks(WbName).Worksheets
        If wks.Name = sheetName Then SheetExist = True: Exit Function
    Next
    
    ERRORHANDLER:
    SheetExist = False
End Function

Gruß Sepp

Anzeige
Danke! Läuft!
26.01.2009 00:09:00
Alex
Codes von Daniel und Tino bringen mir beide das gewünschte Ergebnis.
Danke auch Dir Sepp, deinen probiere ich morgen.
bis denn dann
Alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige