Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
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

Registername aus Zelle holen

Registername aus Zelle holen
24.01.2009 16:04:00
Jürgen
Hallo zusammen,
hab das Makro hier erstellt:

Sub Registername_anpassen()
' Registername_anpassen Makro
' Schreibt den Inhalt der Zelle C2 in den Registernamen
' Tastenkombination: Strg+Umschalt+R
Sheets(1).Name = Range("C2").Value
Sheets(2).Name = Range("C2").Value
'Sheets(3).Name = Range("C2").Value
'Sheets(4).Name = Range("C2").Value
'Sheets(5).Name = Range("C2").Value
'Sheets(6).Name = Range("C2").Value
'Sheets(7).Name = Range("C2").Value
'Sheets(8).Name = Range("C2").Value
End Sub


Solange ich ich nur Blatt 1 nutze gehts, aber sobald das zweite Blatt mit dabei ist, ist Schluß.
Der Laufzeitfehler sagt ich benutze zwei gleiche Bezeichnungen. Quatsch Sheets(1) ist doch nicht gleich Sheets(2). Hab auch AllSheets probiert. Kennt VBA nicht, wahrscheinlich fehlt die Zuweisung, oder?
Auch gefällt mir die Beschränkung nicht, geht das nicht allgemeiner. Also beliebig viele neue Blätter ohne VBA Änderung?
Da ich oft auch mit großen Zahlen arbeite, wäre mir statt 1000000 lieber 1 Mio oder zumindest die Mio mit Punkten = 1.000.000.
Danke schon mal und hand
Jürgen

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

Betreff
Datum
Anwender
Anzeige
AW: Registername aus Zelle holen
24.01.2009 16:06:00
Hajo_Zi
Hallo Jürgen,
Du es darf nur eine Tabelle mit dem Namen geben. Bei Dir sollen 8 Tabelen den gleichen Namen haben.

AW: Registername aus Zelle holen
24.01.2009 16:10:00
Oberschlumpf
Hi Jürgen
...Der Laufzeitfehler sagt ich benutze zwei gleiche Bezeichnungen. Quatsch Sheets(1) ist doch nicht gleich Sheets(2...
Aber Range("C2").Value bleibt immer Range("C2").Value.
Dein Code "soll" allen Sheets den Namen "verpassen", der als Wert in Range("C2").Value steht.
Aber das geht nicht, weil in Excel nun mal in der selben Datei 2 Tabellenblätter nicht den gleichen Namen haben können.
Ist deine Frage so beantwortet?
Ciao
Thorsten
Anzeige
AW: Registername aus Zelle holen
24.01.2009 16:27:00
Josef
Hallo Jürgen,
warum es nicht funzt Haben ja Hajo und Thorsten schon erläutert.
So sollte es gehn.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub NameSheets()
    Dim objWs As Worksheet
    Dim strSheet As String
    
    For Each objWs In ThisWorkbook.Worksheets
        strSheet = objWs.Range("C2").Text
        If IsNumeric(strSheet) Then
            If Clng(strSheet) < 10 ^ 6 Then
                strSheet = Format(strSheet, "#,#")
            Else
                strSheet = Format(Clng(strSheet), "#,,.0 Mio")
            End If
        End If
        If IsValidSheetName(strSheet) Then
            objWs.Name = strSheet
        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

Gruß Sepp

Anzeige
Danke Sepp, wia sagt da Bayer "well done" oT
25.01.2009 06:54:20
Jürgen

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige