Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
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

Abfrage von Checkboxen in Userform

Betrifft: Abfrage von Checkboxen in Userform von: Alex
Geschrieben am: 25.09.2014 20:13:25

Hallo!

Ich habe da folgendes Problem:

Ich hab eine Userform mit 12 Checkboxen (für jedes Monat eine), angeordnet sind sie so: Jänner bis Juni in der linken Spalte, Juli bis Dezember in der rechten Spalte (fangen auf der gleichen Höhe an)

Wenn ich dann in der Userform auf OK klicke soll er mir überprüfen welche Monate ausgewählt wurden.


y=12 'da ich in der 12. spalte anfange
...
For Each cbox In Controls
If TypeName(cbox) = "CheckBox" Then
If cbox.Value = True Then
.Cells(x, y) = userform1.textbox1.Value
End If
y = y + 1
End If
Next


x und y sind die Koordinaten im worksheet.
Die x Koordinate stimmt immer, jedoch ist y falsch.
Und zwar hab ich mir mal mit einer msgbox angesehen, welche Checkbox Excel gerade kontrolliert und da ist der Hund begraben. Excel geht da so vor: Jänner - Juni passt, dann Dezember, Juli - November

Egal was ich bisher probiert habe (Name der Checkbox in der Reihenfolge 1-12; Dezember weiter nach rechts gerückt; ...), ich verstehe nicht warum Dezember da vorgezogen wird.

Ich hoffe mir kann da jemand helfen!

Danke schon mal im voraus!

Grüße
Alex

  

Betrifft: Reihenfolge bei For Each von: Christian
Geschrieben am: 26.09.2014 07:40:48

Hallo Alex,
IMO werden bei For Each die Objekte in der Reiehnfolge durchlaufen, in der sie erzeugt wurden.
Die Position der CheckBoxes auf dem Userformular ist dabei nicht relevant. Ebenso wenig die Control-Namen oder deren Caption.

Private Sub CommandButton1_Click()
    Dim cbox As Control
    
    For Each cbox In Me.Controls
        If TypeName(cbox) = "CheckBox" Then
            Debug.Print cbox.Name; " "; cbox.Caption
        End If
    Next
End Sub
Also entweder die Captions an die gegebene Reihenfolge anpassen,
oder jeweils einen Tag setzen und diesem im Code abfragen,
oder ...

Gruß
Christian


  

Betrifft: AW: Reihenfolge bei For Each von: Alex
Geschrieben am: 26.09.2014 13:20:49

Hallo Christian,

ja das macht Sinn. Hab jetzt die letzte Checkbox gelöscht und neu erstellt, jetzt funktioniert es.

Danke!!

Grüße
Alex


 

Beiträge aus den Excel-Beispielen zum Thema "Abfrage von Checkboxen in Userform"