Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel vba: Tabellen mit neuem Code-Namen
#1
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
Antworten Top
#2
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
Antworten Top
#3
   

Hallo Erich

Im Trust Center - Makroeinstellungen

Gruss Guschti
Der Künstler lebt auch vom Applaus
Excel Optimaler Zuschnitt von Stangen/Balken - YouTube
Antworten Top
#4
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
Der Künstler lebt auch vom Applaus
Excel Optimaler Zuschnitt von Stangen/Balken - YouTube
Antworten Top
#5
Vielen Dank Euch Beiden!
Werde es heute Abend ausprobieren.
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#6
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
Antworten Top
#7
Hallo Erich

Schau in meiner ersten Antwort.
Hast im Trust Center - Makroeinstellungen den Haken gesetzt?

Gruss Guschti
Der Künstler lebt auch vom Applaus
Excel Optimaler Zuschnitt von Stangen/Balken - YouTube
Antworten Top
#8
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
Antworten Top
#9
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
Der Künstler lebt auch vom Applaus
Excel Optimaler Zuschnitt von Stangen/Balken - YouTube
Antworten Top
#10
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.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste