Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Userform-Element löschen

Userform-Element löschen
17.03.2016 13:17:09
Pepi
hallo zusammen
folgende Makro listet alle Elemente eines UserForm - funktioniert soweit
wie kann ich zB das Element "lab4" löschen? Achtung: 2 Varianten gehen nicht!
Sub SU_UserForm_Elemente_auflisten1()
Dim j%, sTmp$, sNam$, Ctrl As MSForms.Control
For Each Ctrl In uMen.Controls         '
sNam = Ctrl.Name
If LCase(sNam) = "lab4" Then
Ctrl.Delete 'geht nicht
uMen.Controls(sNam).Delete 'geht nicht
End If
sTmp = sTmp & Format(j, "00.)  ") & Ctrl.Width & vbTab & Ctrl.Height & vbTab & sNam & Chr(10) _
' ";" für Array()
Next Ctrl
MsgBox sTmp
End Sub

vielen Dank für Eure Unterstützung
mfg
Pepi

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Userform-Element löschen
17.03.2016 13:23:35
selli
hallo pepi,
versuchs mal so:
uMen.shapes(sNam).Delete
gruß
selli

AW: Userform-Element löschen
17.03.2016 14:26:13
Pepi
Danke Daniel und Seli
uMen.shapes(sNam).delete geht leider nicht
Ctrl.visible = false kenne ich, kann ich aber hier nicht brauchen
Warte weiter auf gute Vorschläge
PS: ich muss das Shape löschen, wenn ich es gefunden (finde es "von Hand" leider nicht)
mfg
Pepi

Anzeige
AW: Userform-Element löschen
17.03.2016 14:41:47
Daniel
Hi
wie ist denn das Label in die Userform gekommen?
hast du es während der Laufzeit (dh per Makro) mit Controls.Add hinzugefügt?
nur dann kannst du es mit .Remove oder .Clear wieder löschen (für die genaue Syntax bitte die Excelfhilfe bemühen)
Steuerelemente, welche du zur Entwicklungszeit (dh im VBA-Editor) hinzugefügt hast, kannst du nicht löschen, sondern nur ausblenden (zumindest interpretiere ich so die Hilfe).
Gruß Daniel

Anzeige
AW: Userform-Element löschen
18.03.2016 07:22:16
Pepi
Guten Morgen Excelleute
Ich habe im Web diesen Code gefunden
For Each a In UserForm1.Controls
If TypeOf a Is MSForms.Label Then
UserForm1.Controls.Remove a.Name
End If
Next a
geht leider auch nicht (weil Laben von Hand gesetzt)
Es wäre mir auch geholfen, wenn ich das Label aktivieren/selektieren könnte, dann könnte ich es von Hand löschen - aber dazu habe ich die Syntax auch nicht rausgefunden
mfg
Pepi

Anzeige
AW: Userform-Element löschen
18.03.2016 10:41:19
Daniel
HI
wenn du ein Control löschen willst, welches du in deiner Userform nicht sehen kannst, dann aktiviere die Eigenschaftsliste im VBA-Edtior.
Diese hat am oberen Rand eine Combobox, in welcher alle Controls ausfgelistet sind und über die du die Controls auch selektieren kannst.
Gruß Daniel

Anzeige
AW: Userform-Element löschen
17.03.2016 13:34:39
Daniel
Hi
reicht es nicht aus, das Label einfach unsichtbar zu machen wenn es nicht benötigt wird:
Crtl.visible = False

hat für den Anwender dieselbe Wirkung wie löschen.
damit das Label dann nicht in der Auflistung erscheint, nimmst du das sTmp = sTmp & ... in den ELSE-Teil des IFs
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Userform-Elemente in Excel löschen


Schritt-für-Schritt-Anleitung

Um ein Steuerelement in einer Userform zu löschen, kannst Du das folgende VBA-Skript verwenden. Dieses Beispiel zeigt, wie Du ein spezifisches Label, z.B. "lab4", entfernen kannst:

Sub SU_UserForm_Elemente_auflisten1()
    Dim j%, sTmp$, sNam$, Ctrl As MSForms.Control
    For Each Ctrl In uMen.Controls
        sNam = Ctrl.Name
        If LCase(sNam) = "lab4" Then
            ' Hier wird das Steuerelement gelöscht
            uMen.Controls.Remove sNam
        End If
        sTmp = sTmp & Format(j, "00.)  ") & Ctrl.Width & vbTab & Ctrl.Height & vbTab & sNam & Chr(10)
    Next Ctrl
    MsgBox sTmp
End Sub

Um alle Steuerelemente in der Userform zu löschen, kannst Du diese Methode verwenden:

Sub AlleSteuerelementeLöschen()
    Dim Ctrl As MSForms.Control
    For Each Ctrl In uMen.Controls
        uMen.Controls.Remove Ctrl.Name
    Next Ctrl
End Sub

Diese Methode entfernt alle Steuerelemente der Userform.


Häufige Fehler und Lösungen

  1. Das Element lässt sich nicht löschen:

    • Stelle sicher, dass das Steuerelement zur Laufzeit mit Controls.Add hinzugefügt wurde. Andernfalls kannst Du es nur ausblenden, nicht löschen.
  2. Fehlermeldung bei .Remove:

    • Wenn Du versuchst, ein Steuerelement zu löschen, das zur Entwicklungszeit hinzugefügt wurde, erhältst Du möglicherweise einen Fehler. In diesem Fall solltest Du das Steuerelement einfach unsichtbar machen:
      Ctrl.Visible = False
  3. Elemente nicht sichtbar:

    • Wenn Du die Steuerelemente nicht sehen kannst, aktiviere die Eigenschaftsliste im VBA-Editor, um alle Controls angezeigt zu bekommen.

Alternative Methoden

  • Über die Eigenschaftenliste: Du kannst die Eigenschaftenliste im VBA-Editor verwenden, um ein Steuerelement auszuwählen und manuell zu löschen.
  • Nutze die .Clear Methode: Wenn Du alle Inhalte eines Steuerelements (z.B. Textboxen) leeren möchtest, kannst Du die .Clear Methode verwenden.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du Steuerelemente in einer Excel Userform verwalten kannst:

  1. Ein Label ausblenden:

    Dim Ctrl As MSForms.Control
    For Each Ctrl In uMen.Controls
       If Ctrl.Name = "lab4" Then
           Ctrl.Visible = False
       End If
    Next Ctrl
  2. Alle Labels aus einer Userform löschen:

    Dim Ctrl As MSForms.Control
    For Each Ctrl In uMen.Controls
       If TypeOf Ctrl Is MSForms.Label Then
           uMen.Controls.Remove Ctrl.Name
       End If
    Next Ctrl

Tipps für Profis

  • Namen der Steuerelemente: Achte darauf, dass die Namen der Steuerelemente eindeutig sind, um Verwirrungen beim Löschen zu vermeiden.
  • Debugging: Nutze Debug.Print um den Namen und Typ der Steuerelemente im Immediate-Fenster anzuzeigen, wenn Du dir unsicher bist, welche Steuerelemente vorhanden sind.
  • Code organisieren: Halte Deinen Code modular, indem Du Funktionen erstellst, die spezifische Aufgaben erledigen, wie das Löschen eines bestimmten Steuerelements.

FAQ: Häufige Fragen

1. Wie kann ich ein Steuerelement in einer Userform löschen? Um ein Steuerelement zu löschen, kannst Du die .Remove Methode verwenden, wenn es zur Laufzeit hinzugefügt wurde. Andernfalls musst Du es ausblenden.

2. Kann ich alle Steuerelemente in einer Userform auf einmal löschen? Ja, Du kannst eine Schleife verwenden, um alle Steuerelemente in der Userform zu durchlaufen und sie mit der .Remove Methode zu löschen.

3. Was, wenn ich das Steuerelement nicht finden kann? Verwende die Eigenschaftsliste im VBA-Editor, um das Steuerelement auszuwählen und es von dort zu löschen oder unsichtbar zu machen.

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