Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Labelnamen per VBA ändern?

Forumthread: Labelnamen per VBA ändern?

Labelnamen per VBA ändern?
03.07.2019 14:14:17
Jubeldibub
Hi Leute!
Ich habe derzeit eine Userform, auf der hunderte Labels angeordnet sind, die ich alle fortlaufend benennen will. Also z.B.
LabelA1 bis LabelA100
LabelB1 bis LabelB100
etc.
Statt die Labels nun alle mühsam im Editor umzubenennen, hatte ich gehofft, die Namen mit einem kleinen VBA-Code gebündelt umzuschießen. Ich wollte einfach aus den standardisiert erstellten Labelnamen (also "LabelX") die gewünschten Namen machen.
Für ein einzelnes Label z.B. so:

Label1.Name = LabelAusbau1

Grüße
JDB
Dann bekomme ich jedoch diese Fehlermeldung: "Eigenschaft Name konnte nicht gesetzt werden. Eigenschaft kann nicht zur Laufzeit gesetzt werden."
Kann man das umgehen? Bzw. gibt es einen anderen Weg, aufwandsarm große Mengen an bestehenden Labels umzubenennen?
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Labelnamen per VBA ändern?
03.07.2019 14:51:32
Rudi
Hallo,
als Anregung:
Sub ReNameLabels()
Dim c As Control
With ThisWorkbook.VBProject
With .vbcomponents("userform1").designer
For Each c In .Controls
With c
If .Name Like "Label*" Then
.Name = .Name & "_test"
End If
End With
Next c
End With
End With
End Sub

Die UF muss geschlossen sein.
Gruß
Rudi
Anzeige
AW: Labelnamen per VBA ändern?
03.07.2019 15:33:32
Jubeldibub
Ich bin nicht sicher, ob ich es mir richtig zusammenreime. Ich habs mir mal als Einzelbefehl versucht nachzubilden.
Wäre das im Grunde so, als wenn ich folgenden Code aus z.B. Userform2 per Buttonklick starte und damit das Label1 in UserForm1 umbenennen würde?
Private Sub CommandButton1_Click()
ThisWorkbook.VBProject.VBComponents("UserForm1").Designer("Label1").Name = LabelTest1
End Sub
Oder habe ich da noch einen Fehler in der Struktur? Auf jeden Fall geht es so nicht, dann bekomme ich die Meldung "Die Methode VBProject für das Objekt _Workbook ist fehlgeschlagen."
Anzeige
AW: Labelnamen per VBA ändern?
03.07.2019 15:56:00
Dieter(Drummer)
Hallo Jubeldibub (was für ein Name :-)),
Rudi hat doch vermerkt, dass die Userform geschlossen sein muss.
Seinen Code in z.B. Modul1, dann Code aufrufen und die Labels, in z.B. Userform1, werden entsprechend, wie im Modul festgelegten Namen, geändert. Das funktioniert!
Gruß, Dieter(Drummer)
Anzeige
knapp vorbei
03.07.2019 16:26:52
Rudi

ActiveWorkbook.VBProject.vbcomponents("userform1").designer.Controls("Label1").Name = "Test"
Außerdem musst du selbstverständlich dem Zugriff aufs VBA-Projektobjektmodell vertrauen.(Trustcenter)
Gruß
Rudi
AW: knapp vorbei
03.07.2019 20:38:18
Jubeldibub
Danke für den Tipp mit dem Sicherheitscenter, da wäre ich nicht drauf gekommen.
Jetzt funktioniert alles wie gewünscht. Perfekt :)
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Labelnamen in Excel UserForms per VBA ändern


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (deine Arbeitsmappe)" und wähle Einfügen > Modul.
  3. Füge den VBA-Code ein:

    • Kopiere den folgenden Code in das Modul:
    Sub ReNameLabels()
       Dim c As Control
       With ThisWorkbook.VBProject
           With .VBComponents("UserForm1").Designer
               For Each c In .Controls
                   If c.Name Like "Label*" Then
                       c.Name = c.Name & "_neu" ' Hier kannst du den gewünschten Namen anpassen
                   End If
               Next c
           End With
       End With
    End Sub
  4. Schließe die UserForm:

    • Stelle sicher, dass die UserForm, deren Labels du umbenennen möchtest, geschlossen ist.
  5. Führe den Code aus:

    • Gehe zurück zu Excel, drücke ALT + F8, wähle ReNameLabels und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehlermeldung: "Eigenschaft Name konnte nicht gesetzt werden."

    • Stelle sicher, dass die UserForm geschlossen ist, während du den Code ausführst.
  • Die Methode VBProject für das Objekt _Workbook ist fehlgeschlagen.

    • Überprüfe, ob du dem Zugriff auf das VBA-Projektobjektmodell im Trustcenter vertraust.

Alternative Methoden

Eine alternative Methode, um label namen zu ändern, ist die Verwendung eines Button-Klicks in der UserForm selbst. Hier ist ein Beispiel:

Private Sub CommandButton1_Click()
    ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls("Label1").Name = "LabelTest1"
End Sub

Diese Methode ermöglicht es dir, die label namen direkt während der Laufzeit zu ändern.


Praktische Beispiele

  • Umbenennung von Labels mit fortlaufenden Namen: Angenommen, du hast Labels wie LabelA1, LabelA2, ..., LabelA100. Der folgende Code fügt "_neu" zu jedem Labelnamen hinzu:
Sub ReNameLabels()
    Dim i As Integer
    For i = 1 To 100
        ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls("LabelA" & i).Name = "LabelA" & i & "_neu"
    Next i
End Sub

Tipps für Profis

  • Verwende die Like-Anweisung: Mit If c.Name Like "Label*" kannst du alle Labels mit einem bestimmten Muster gezielt umbenennen.

  • Sichere deine Arbeit: Vor dem Ausführen von VBA-Codes ist es ratsam, eine Sicherungskopie deiner Arbeitsmappe zu erstellen.


FAQ: Häufige Fragen

1. Was bedeutet der Name Rudi? Der Name Rudi ist einfach ein Benutzername in diesem Forum und hat keine spezielle Bedeutung.

2. Wie finde ich label namen in meiner UserForm? Du kannst die Designer-Ansicht im VBA-Editor verwenden, um alle label namen in deiner UserForm zu sehen. Alternativ kannst du den Code zur Umbenennung anpassen, um alle Labels aufzulisten.

3. Funktioniert dieser VBA-Code in allen Excel-Versionen? Die oben genannten VBA-Codes sollten in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass dein Excel für die Verwendung von VBA konfiguriert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige