geselecteerde items Userform1 invullen werkblad excel

Status
Niet open voor verdere reacties.

jan excel

Gebruiker
Lid geworden
4 mrt 2007
Berichten
437
Hallo Experts,

Wie kan mij aan een code helpen dat geselecteerde producten in checkboxen op blad1 onder
elkaar invult vanaf cel A5.

Altijd wel op volgorde van de checkboxen onder elkaar plaatsen.
Voorbeeld toegevoegd wat e.e.a verduidelijkt.



Alvast bedankt.
Jan Evers
 

Bijlagen

  • test1.xlsm
    21,2 KB · Weergaven: 47
Laatst bewerkt door een moderator:
Dit achter de Ok knop?
Code:
Private Sub CommandButton1_Click()
    r = 4
    For i = 1 To 7
        If Controls("CheckBox" & i) Then
            r = r + 1
            Range("A" & r + 1 & ":A11").ClearContents
            Cells(r, 1) = Controls("CheckBox" & i).Caption
        End If
    Next i
End Sub
 
Iets dynamischer.

Code:
Private Sub CommandButton1_Click()
  For Each ct In Me.Controls
    If TypeName(ct) = "CheckBox" Then
      If ct Then c00 = c00 & "|" & ct.Caption
    End If
  Next
  With Sheets("Blad1")
   .Range("A5:A" & Application.Max(5, .Cells(Rows.Count, 1).End(xlUp).Row)).Clear
    If Len(c00) > 0 Then
      ar = Split(Mid(c00, 2), "|")
      .Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(ar) + 1) = Application.Transpose(ar)
    End If
  End With
  Unload Me
End Sub
 
Iets doordachter.
Code:
Private Sub CommandButton1_Click()
For i = 1 To 7
 With Me("checkbox" & i)
  If .Value Then s0 = s0 & "|" & .Caption
 End With
Next i

With Range("a5")
 .CurrentRegion.Offset(1).ClearContents
 If Len(s0) > 0 Then
   sq = Application.Transpose(Split(Mid(s0, 2), "|"))
   .Resize(UBound(sq)) = sq
 End If
End With
End Sub
 
Laatst bewerkt:
EDmoor, VenA en HSV,

Dank jullie wel alle drie opties werken.
Er leiden meer wegen naar Rome.

groet,
Jan E
 
Er werken er maar twee Jan, eentje voldoet niet aan je voorwaarden.
 
Code:
Private Sub CommandButton1_Click()
    ReDim sn(Controls.Count, 0)
    
    For Each it In Controls
       If TypeName(it) = "CheckBox" Then
          If it Then
             sn(j, 0) = it.Caption
             j = j + 1
          End If
        End If
    Next
    
    Blad1.Cells(5, 1).Resize(UBound(sn)) = sn
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan