Registriert seit: 09.05.2015
Version(en): 2013, Office 365
Hallo zusammen,
leider komme ich mit meinem Problem mal wieder nicht weiter und hoffe auf Eure Hilfe.
In einer Arbeitsmappe befinden sich eine große Anzahl von Tabellenblättern, die leider vom Code-Namen her nicht fortlaufend nummeriert sind.
Also z.B. Tabelle11...Tabelle 13... Tabelle25 ....usw.
Leider finde ich auch nach langer Suche keine Lösung um die Code-Namen in einer Schleife wieder in ein fortlaufende Nummerierung von "Tabelle2" bis "abelleX" zu bekommen.
Könnt Ihr mir bitte dabei weiterhelfen und eine Lösung nennen?
Ich habe es mal so versucht.... klapp aber nicht:
Code:
Sub CodeNamen()
Dim objShp As Shape
Anzahl = ActiveWorkbook.Worksheets.Count
For I = 2 To Anzahl
ActiveWorkbook.Sheets(I).Activate
ThisWorkbook.VBProject.VBComponents(Sheets(I).CodeName).Name = "Tabelle" & I
Next I
End Sub
Das Teil steigt mit Fehlermeldung aus:
Die Methode "Name" für das Objekt _VBComponent ist fehlgeschlagen.
Für einen Tipp wäre ich dankbar!
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------
Erich
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo Erich
ich denke es ist leichter die Blaetter neu zu sortieren anstatt sie umzubenennen. Beide Code Beispiele findest du unten.
mfg Gast 123
Code:
Sub Sheets_umstellen()
Dim i, j, zahl1, zahl2
For i = 1 To Worksheets.Count - 1
For j = 1 To Worksheets.Count - 1
zahl1 = Right(Worksheets(j).Name, 1)
zahl2 = Right(Worksheets(j + 1).Name, 1)
If zahl1 > zahl2 Then
Worksheets(j).Move after:=Worksheets(j + 1)
End If
Next j
Next i
End Sub
Sub Sheets_umbenennen()
Dim i, j, Txt as String
For i = 1 To Worksheets.Count
Txt = Worksheets(i).Name
Worksheets(i).Name = Txt & "99"
Next i
For j = 1 To Worksheets.Count
Worksheets(j).Name = "Tabelle" & j
Next j
End Sub
Registriert seit: 15.08.2017
Version(en): 2016
Hallo Erich
Im Trust Center - Makroeinstellungen
Gruss Guschti
Registriert seit: 15.08.2017
Version(en): 2016
Hallo Erich
Ich hab gerade meinen alten Code gefunden. Geht auch ohne Select.
Code:
Sub CodeNamen_umbenennen()
Dim i As Integer
For i = 1 To ActiveWorkbook.Worksheets.Count
ThisWorkbook.VBProject.VBComponents(Worksheets(i).CodeName).Name = "Tabelle" & i
'Anstatt "Tabelle" kann es z.B. auch ein anderes Wort sein
Next
End Sub
Gruss Guschti
Registriert seit: 09.05.2015
Version(en): 2013, Office 365
Vielen Dank Euch Beiden!
Werde es heute Abend ausprobieren.
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------
Erich
Registriert seit: 09.05.2015
Version(en): 2013, Office 365
23.12.2019, 09:48
(Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2019, 09:48 von sharky51.)
Hallo nochmals,
die Tabellenblätter möchte ich nicht neu sortieren.
Die Sheet-Namen (Tabellenblatt-Reiter) sollen nicht umbenannt werden, aber der Code-Name des Sheets schon.
Das vorgestellte Makro mit "CodeNamen_umbenennen" bringt mir die gleiche Fehlermeldung wie ich in meiner ersten Anfrage beschrieben hatte.
Die Methode "Name" für das Objekt _VBComponent ist fehlgeschlagen.
Vielleicht hat noch jemand eine Lösungsmöglichkeit?
Nachtrag: Die Sicherheitseinstellungen für Makros stehen auf "Alle Makros aktivieren........."
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------
Erich
Registriert seit: 15.08.2017
Version(en): 2016
Hallo Erich
Schau in meiner ersten Antwort.
Hast im Trust Center - Makroeinstellungen den Haken gesetzt?
Gruss Guschti
Registriert seit: 09.05.2015
Version(en): 2013, Office 365
23.12.2019, 10:11
(Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2019, 10:11 von sharky51.)
Hallo Guschti,
Haken ist gesetzt, ist so eingestellt (in Office 365) dass die Makros eigentlich funktionieren müssten.
Ich verstehe nicht warum das nicht funktioniert - hample fast täglich mit Makros durch die Gegend?
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------
Erich
Registriert seit: 15.08.2017
Version(en): 2016
Hallo Erich
Wenn du eine Fehlermeldung bekommst, dann sind die Makros aktiviert.
Du könntest eine Kopie deiner Mappe erstellen. Ev. sensible Daten löschen, die Codes aber so lassen wie sie sind.
Diese Kopie dann hier hochladen.
Gruss werni
Registriert seit: 11.04.2014
Version(en): Office 2003 - Office 2007 - Office 365
23.12.2019, 10:32
(Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2019, 10:32 von marose67.)
Hallo Gutschi,
ich finde nur komisch das der Eingestellte Code vom TE hier funktioniert ...
Zitat:Code:
Sub CodeNamen_umbenennen()
Dim i As Integer
For i = 1 To ActiveWorkbook.Worksheets.Count
ThisWorkbook.VBProject.VBComponents(Worksheets(i).CodeName).Name = "Tabelle" & i
'Anstatt "Tabelle" kann es z.B. auch ein anderes Wort sein
Next
End Sub
Gruß
Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.