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

Tabellenblätter per Makro umbenennen

Tabellenblätter per Makro umbenennen
05.07.2013 11:35:13
Nik
Hallo zusammen...
ich sollte ein Reporting aufstellen, das möglichst automatisiert erstellt werden kann. Dazu möchte ich das die Namen der Tabellenblätter durch ein Makro automatisch benannt werden, je nachdem welchen Namen ich in einem Zellenbereich (hier in Spalte C) errechnet habe. Allerdings sollte das Makro auch ein zusätzliches Sheet erstellen falls ich in diesem Bereich mittendrin einen neuen Namen einfüge und am Ende einen anfüge. Dazu habe ich Codematerial gefunden, kann aber mit meinem begrenztem Know How noch nicht soviel anfangen..
' Benennen von Tabellenblättern nach den Inhalten eines Bereichs.
Public Sub BlattnamenNachBereich()
    Const namenBereich As String = "Datumeingabe!C4:C6"
    Dim z As Range, nr As Integer
    nr = 1
    For Each z In Range(namenBereich) 'Worksheets("Datumeingabe").Range("C4:C6").Cells
        Worksheets(nr).name = z.Value
        nr = nr + 1
    Next
End Sub
und:
'Tabellenblatt automatisch benennen lassen bei SheetChange

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B3")) Is Nothing Then _
Sh.Name = Target.Value
End Sub
Kann ich mit diesem Code etwas anfangen? Was müsste denn angepasst werden so dass ich meine Wünsche/ Anforderungen abdecken kann?
https://www.herber.de/bbs/user/86229.xlsm
Vielen lieben Dank für Eure Hilfe und Tipps! :-)
Liebe Grüsse
Nik

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

Betreff
Datum
Anwender
Anzeige
So vielleicht?
05.07.2013 12:18:16
JACKD
Hallo Nik
Hab das mal so abgebildet, wie ich es verstanden hab
(die Blätter Controll sowie Control-Center werden ausgelassen)

Sub Benamsen()
Dim wrk As Workbook
Dim sht As Worksheet
Set wrk = ThisWorkbook
For Each sht In wrk.Worksheets
If sht.Name = "Controll" Or sht.Name = "Controll Center" Then
Else
sht.Name = sht.Cells(11, 3).Value
End If
Next
End Sub
Grüße

AW: Tabellenblätter per Makro umbenennen
05.07.2013 12:31:22
ransi
Hallo Nik
Wenn du es von der Berechnung in C3:C100 abhängig nachen willst, hast du das flasche Ereigniss.
Versuch mal sowas:
' **********************************************************************
' Modul: ThisWorkbook Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit



Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

Dim myNewSheet As Worksheet
Dim Zelle As Range
Dim appAlerts As Boolean
On Error Resume Next
If Sh Is Sheets("Controll Center") Then
    appAlerts = Application.DisplayAlerts
    For Each Zelle In Sh.Range("C3:C100") 'Anpassen
        Set myNewSheet = Worksheets.Add(after:=Sheets(Sheets.Count))
        myNewSheet.Name = Zelle.Text
        If Err > 0 Then 'Blatt gibt es schon, üngültiger Name oder Ähnliches...
            Err.Clear
            Application.DisplayAlerts = False
            myNewSheet.Delete
            Application.DisplayAlerts = appAlerts
        End If
    Next
End If

End Sub


ransi

Anzeige
AW: Tabellenblätter per Makro umbenennen
05.07.2013 13:26:10
Nik
Hallo Ransi,
vielen lieben DANK für Deine Hilfe und Feedback, allerdings habe ich es glaub noch nicht so geschnallt. Ich habe jetzt mal folgendes in VBA kopiert:
Sub Sheets_benennen()
Dim myNewSheet As Worksheet
Dim Zelle As Range
Dim appAlerts As Boolean
On Error Resume Next
If Sh Is Sheets("Controll Center") Then
appAlerts = Application.DisplayAlerts
For Each Zelle In Sh.Range("C3:C100") 'Anpassen
Set myNewSheet = Worksheets.Add(after:=Sheets(Sheets.Count))
myNewSheet.Name = Zelle.Text
If Err > 0 Then 'Blatt gibt es schon, üngültiger Name oder Ähnliches...
Err.Clear
Application.DisplayAlerts = False
myNewSheet.Delete
Application.DisplayAlerts = appAlerts
End If
Next
End If
End Sub
....allerdings ist nichts passiert. Ich habe es auch mal bewusst ohne diese Ereignisse machen wollen, sprich wenn sich in dem Sheet etwas ändert automatisch laufen lassen. Da kenne ich mich auch viel zu wenig aus, so dass ich das auch lieber manuell laufen lassen würde. Aber wie gesagt: passiert ist nix :-( Er hat keine Sheets umnenannt in dem File. Was mache ich denn falsch?
Vielen lieben Dank und Gruss
Nik

Anzeige
AW: Tabellenblätter per Makro umbenennen
05.07.2013 13:37:09
Nik
Ganz vergessen, nicht das ich da jetzt etwas verwirrend geantwortet habe: es ist nichts passiert nachdem ich es manuell habe laufen lassen..
Gruss
Nik

Wo ist Objektvariable sh deklariert ?
05.07.2013 14:26:55
NoNet
Hallo Nik,
Ransi hatte Dir einen Code für das Ereignis Makro "Workbook_SheetCalculate(ByVal Sh As Object)" gepostet, indem das ereignisauslösende Blatt per sh referenziert wird.
In Deinem Code ist diese Objektvariable sh ebenfalls enthalten, aber der Code steht in keinem Ereignis und es ist nicht erkennbar, ob und wo sh deklariert wurde - daher passiert auch scheinbar nichts !
Gruß, NoNet
Exceltreffen 11.-13.10.2013 in Duisburg
http://www.exceltreffen.de/index.php?page=230
Es sind noch genügend Plätze für Interessenten frei - schau doch mal rein !

Anzeige
AW: Wo ist Objektvariable sh deklariert ?
05.07.2013 14:41:21
Nik
Hi NoNet,
was müsste man denn umschreiben um den Code mittels Button manuell ablaufen zu lassen? Also eben nicht per Ereignis? Kenne mich da mit diesen Ereignissen eben gar nicht aus und auch sonst ist VBA eher bescheiden :-(
DANKE und Gruss
Nik

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige