Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Labelnamen per VBA ändern?


Betrifft: Labelnamen per VBA ändern? von: Jubeldibub
Geschrieben am: 03.07.2019 14:14:17

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?

  

Betrifft: AW: Labelnamen per VBA ändern? von: Rudi Maintaire
Geschrieben am: 03.07.2019 14:51:32

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


  

Betrifft: AW: Labelnamen per VBA ändern? von: Jubeldibub
Geschrieben am: 03.07.2019 15:33:32

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."


  

Betrifft: AW: Labelnamen per VBA ändern? von: Dieter(Drummer)
Geschrieben am: 03.07.2019 15:56:00

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)


  

Betrifft: knapp vorbei von: Rudi Maintaire
Geschrieben am: 03.07.2019 16:26:52

    ActiveWorkbook.VBProject.vbcomponents("userform1").designer.Controls("Label1").Name = "Test"
Außerdem musst du selbstverständlich dem Zugriff aufs VBA-Projektobjektmodell vertrauen.(Trustcenter)

Gruß
Rudi


  

Betrifft: AW: knapp vorbei von: Jubeldibub
Geschrieben am: 03.07.2019 20:38:18

Danke für den Tipp mit dem Sicherheitscenter, da wäre ich nicht drauf gekommen.
Jetzt funktioniert alles wie gewünscht. Perfekt :)


Beiträge aus dem Excel-Forum zum Thema "Labelnamen per VBA ändern?"