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

Alle Checkboxen in Userform ansprechen

Forumthread: Alle Checkboxen in Userform ansprechen

Alle Checkboxen in Userform ansprechen
08.12.2002 13:32:12
Andreas
Liebe Leute,

ich habe eine Frage bzgl. Checkboxen in einer Mulitpage in einer Userform. Wie kann ich alle Checkboxen auf dieser Multipage ansprechen auch wenn die Namen der Checkboxen nicht mehr "Checkbox" & Nr. sind. Habe im Forum nur Lösungsvorschläge gefunden in denen nach Controls mit dem Namen "Checkbox" gesucht wurde..gibt es auch eine Möglichkeit alle Checkboxen ohne Namensprüfung sondern nach einer Art "Type" Prüfung zu finden und anzusprechen?

Anbei mein bisheriger Code, wie ihr sehen könnt muss ich hier davon ausgehen, dass die Checkboxes auch "Checkbox" & Nr. heissen.. bitte um eure Hilfe! Danke und LG Andi:-)

Sub UserForm_Initialize()
Dim count, icount
For count = 1 To 3
If controls("TextBox" & count).Value <> 0 Then controls("TextBox" & count).Value = 0
Next
'For Each UserForm1.controls("checkBox1") In UserForm1
'Next

For icount = 1 To 3
If Me.controls("CheckBox" & icount).GroupName <> "SD" Then GoTo weiter
Set cCheck(icount).checkBox = Me.controls("CheckBox" & icount)
weiter:
Next icount
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Alle Checkboxen in Userform ansprechen
08.12.2002 13:40:32
Hajo_Zi
Hallo Andreas

mal als Ansatz. Ich habe mal ein makro geschrieben das Steuereelemente auflistet.


Option Explicit

Sub Karsten()
Dim ObCb As Object
Cells(1, 1) = "Textbox"
Cells(1, 2) = "Listbox"
Cells(1, 3) = "Multipage"
Cells(1, 4) = "CommandButton"
Cells(1, 5) = "Label"
Cells(1, 6) = "Kontrollkästchen"
Cells(1, 7) = "OptionsButton"
Cells(1, 8) = "ToggleButton"
Cells(1, 9) = "Frame"
Cells(1, 10) = "ScrollBar"
Cells(1, 11) = "ScrollBar"
Cells(1, 12) = "Image"
Cells(1, 13) = "ComboBox"
Cells(1, 14) = "Rest"
For Each ObCb In Auftrag.Controls
Select Case TypeName(ObCb)
Case "TextBox"
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = ObCb.Name
Case "ListBox"
Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2) = ObCb.Name
Case "MultiPage"
Cells(Cells(Rows.Count, 3).End(xlUp).Row + 1, 3) = ObCb.Name
Case "CommandButton"
Cells(Cells(Rows.Count, 4).End(xlUp).Row + 1, 4) = ObCb.Name
Case "Label"
Cells(Cells(Rows.Count, 5).End(xlUp).Row + 1, 5) = ObCb.Name
Case "CheckBox"
Cells(Cells(Rows.Count, 6).End(xlUp).Row + 1, 6) = ObCb.Name
Case "OptionButton"
Cells(Cells(Rows.Count, 7).End(xlUp).Row + 1, 7) = ObCb.Name
Case "ToggleButton"
Cells(Cells(Rows.Count, 8).End(xlUp).Row + 1, 8) = ObCb.Name
Case "Frame"
Cells(Cells(Rows.Count, 9).End(xlUp).Row + 1, 9) = ObCb.Name
Case "ScrollBar"
Cells(Cells(Rows.Count, 10).End(xlUp).Row + 1, 10) = ObCb.Name
Case "SpinButton"
Cells(Cells(Rows.Count, 11).End(xlUp).Row + 1, 11) = ObCb.Name
Case "Image"
Cells(Cells(Rows.Count, 12).End(xlUp).Row + 1, 12) = ObCb.Name
Case "ComboBox"
Cells(Cells(Rows.Count, 13).End(xlUp).Row + 1, 13) = ObCb.Name
Case Else
Cells(Cells(Rows.Count, 14).End(xlUp).Row + 1, 14) = ObCb.Name
Cells(Cells(Rows.Count, 15).End(xlUp).Row + 1, 15) = TypeName(ObCb)
End Select
Next ObCb
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Hajo

Anzeige
Supi, hat geklappt!f
08.12.2002 14:39:31
Andreas
Lieber Hajo,

vielen Dank für deine schnelle Antwort! Hat super geklappt, habe den Code sehr einfach umbauen können, Danke!

;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Alle Checkboxen in Userform ansprechen


Schritt-für-Schritt-Anleitung

Um alle Checkboxen in einer Userform anzusprechen, ohne sich auf die Namen zu verlassen, kannst du den folgenden VBA-Code verwenden. Dieser Code durchläuft alle Steuerelemente und prüft auf den Typ "CheckBox".

Sub AlleCheckboxenAnsprechen()
    Dim ObCb As Object
    Dim i As Integer
    Dim Zeile As Integer

    Zeile = 1 ' Startzeile für die Ausgabe

    For Each ObCb In UserForm1.Controls
        If TypeName(ObCb) = "CheckBox" Then
            Cells(Zeile, 1) = ObCb.Name ' Name der CheckBox in die erste Spalte schreiben
            Zeile = Zeile + 1
        End If
    Next ObCb
End Sub

Dieser Code listet alle Checkboxen in der Userform auf und gibt deren Namen in eine Excel-Tabelle aus.


Häufige Fehler und Lösungen

Fehler: "Objekt nicht gefunden"

  • Lösung: Stelle sicher, dass der Name der Userform korrekt ist. Der Code sollte den richtigen Verweis auf die Userform haben.

Fehler: Checkbox wird nicht angezeigt

  • Lösung: Überprüfe, ob die Checkboxen tatsächlich in der Userform vorhanden sind und ob sie sichtbar sind.

Alternative Methoden

Eine alternative Methode, um alle Checkboxen zu finden, ist die Verwendung der TypeName-Funktion in Kombination mit einer Schleife. Hier ein Beispiel, das Checkboxen in einer Multipage ansprechen kann:

Sub CheckboxenInMultipageAnsprechen()
    Dim ObCb As Object
    Dim i As Integer

    For i = 0 To UserForm1.MultiPage1.Pages.Count - 1
        For Each ObCb In UserForm1.MultiPage1.Pages(i).Controls
            If TypeName(ObCb) = "CheckBox" Then
                Debug.Print ObCb.Name ' Gibt den Namen der Checkbox in der Konsole aus
            End If
        Next ObCb
    Next i
End Sub

Diese Methode ermöglicht es, Checkboxen aus verschiedenen Seiten einer Multipage-Userform zu erfassen.


Praktische Beispiele

Ein praktisches Beispiel könnte die Verwendung einer Userform mit mehreren Checkboxen sein, die den Status eines Projekts darstellen. Mit dem folgenden Code kannst du den Status aller Checkboxen überprüfen:

Sub StatusCheckboxenÜberprüfen()
    Dim ObCb As Object
    Dim Status As String

    For Each ObCb In UserForm1.Controls
        If TypeName(ObCb) = "CheckBox" Then
            Status = IIf(ObCb.Value = True, "Aktiv", "Inaktiv")
            Debug.Print ObCb.Name & ": " & Status
        End If
    Next ObCb
End Sub

Dieser Code gibt den Namen jeder Checkbox zusammen mit ihrem Status in der Konsole aus.


Tipps für Profis

  • Nutze die With-Anweisung, um den Code übersichtlicher zu gestalten.
  • Vermeide die Verwendung von GoTo, um die Lesbarkeit des Codes zu verbessern.
  • Dokumentiere deinen Code mit Kommentaren, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Frage Wie kann ich Checkboxen dynamisch hinzufügen?

Antwort: Du kannst Checkboxen zur Laufzeit mit dem folgenden Code hinzufügen:

Dim NeueCheckBox As MSForms.CheckBox
Set NeueCheckBox = UserForm1.Controls.Add("Forms.CheckBox.1", "CheckBox1")

2. Frage Wie kann ich den Wert einer Checkbox abfragen?

Antwort: Du kannst den Wert einer Checkbox einfach mit If CheckBox1.Value = True Then abfragen, um zu überprüfen, ob sie aktiviert 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