VBA code gevraagd

Status
Niet open voor verdere reacties.

jan excel

Gebruiker
Lid geworden
4 mrt 2007
Berichten
437
Hallo Experts,

In een userform staan checkboxen om dagen te selecteren.
Deze dagen dienen in een kolom netje onder elkaar te worden gezet vanaf een bepaalde range.
De dagen dienen zo onder elkaar te worden gezet volgens volgorde checkbox.
Zie voorbeeld, dan is e.e.a wel duidelijk denk ik.

Wie kan mij aan de juiste VBA code helpen.

B.v.d.
Jan E
 

Bijlagen

  • voorbeeld1a.xlsm
    21,9 KB · Weergaven: 51
Goedemorgen Jan,

probeer dit eens onder je OK-knop:
Code:
Private Sub CommandButton1_Click()

Dim cont As MSForms.Control
With Sheets("Blad1")
    .Range("E5:E11").ClearContents

    For Each cont In Me.Controls
    X = .Range("E" & Rows.Count).End(xlUp).Row + 1
        If cont = True Then
            .Cells(X, 5).Value = cont.Caption
        End If
    Next
End With
End Sub
 
Ik zou controleren of het een checkbox is.
Code:
For Each cont In Controls
    If TypeName(cont) = "CheckBox" Then
      If cont Then .Cells(Rows.Count, 5).End(xlUp).Offset(1) = cont.Caption
    End If
   Next
 
En voor een gierende snelheidswinst:d de gegevens in 1 keer wegschrijven

Code:
For Each cont In Me.Controls
    If TypeName(cont) = "CheckBox" Then
        c00 = c00 & IIf(cont, cont.Caption & " ", "")
    End If
  Next
  If c00 <> "" Then .Cells(5, 5).Resize(UBound(Split(c00))) = Application.Transpose(Split(c00))
 
ja, met de vlam in de pijp.......

Maar @ harry, in dit geval zijn er toch alleen maar checkboxen, dus waarom zou je dat willen checken? :)
 
@SjonR,

Kijk nog maar eens goed.

Code:
msgbox typename(cont)
msgbox cont.name
 
Als ik ipv @HSV mag antwoorden, die mij voor was. Elke control heeft zijn eigen eigenschappen. Dat het in jouw geval goed gaat komt omdat je geen waarde van de controls opvraagt.

Ga je dat wel doen dan krijg je een foutmelding en daarom is het beter om even te checken om welke control het gaat.

Vergelijk onderstaande maar eens
Code:
Private Sub UserForm_Click()
  For Each it In Me.Controls
    c00 = c00 & TypeName(it) & " " & it & vbLf
  Next it
  MsgBox c00
End Sub

Code:
Private Sub UserForm_Click()
  For Each it In Me.Controls
    c00 = c00 & TypeName(it) & " " & it.Value & vbLf
  Next it
  MsgBox c00
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan