Meerdere CheckBoxen in 1 cell

  • Onderwerp starter Onderwerp starter Tsw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Tsw

Gebruiker
Lid geworden
5 dec 2011
Berichten
183
Goedemorgen,

Ik heb een voorbeeld bestand gemaakt:
Bekijk bijlage Voorbeeld.xlsm

Hier zit in Userform in met 4 TextBoxen en 4 stuks Checkboxen.
Als ik deze invul en op de knop druk schrijft hij dit weg in mijn tabblad "DATA"

Maar eigen moeten mijn Checkboxen allemaal in kolom E komen. (in 1 cel)
Al volgt: Waarde1, Waarde 2, Waarde 3, Waarde 4.
Hij moet alleen de waarde van de aangevinkte boxen laten zien.

Hoe doe ik dit?

Bvd.
 
Bv zo

Code:
ws.Cells(iRow, 5) = IIf(CheckBox1, "Waarde1", "") & IIf(CheckBox2, "Waarde2", "") & IIf(CheckBox3, "Waarde3", "") & IIf(CheckBox4, "Waarde4", "")
 
Bedankt, werkt opzich wel.
Kan er tussen de woorden ook nog een ", " (lees: komma spatie) tussen staan?
Kan ik hem eventueel wel achter elk woord toevoegen maar misschien is er een makkelijkere manier.
Dat hij het alleen toepast als er echt een woord achteraan komt?
 
Is niet zo lastig, maar je moet dan wel een lusje maken.
Code:
    iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    For i = 1 To 4
        ws.Cells(iRow, i).Value = Me("TextBox" & i).Value
    Next i
    For i = 1 To 4
        If Me("CheckBox" & i).Value = True Then
            If Not tmp = "" Then tmp = tmp & ", "
            tmp = tmp & "Waarde" & i
        End If
    Next i
    ws.Cells(iRow, 5).Value = tmp

    For i = 1 To 4
        Me("TextBox" & i).Value = ""
        Me("CheckBox" & i).Value = False
    Next i
 
OctaFish:
Bedankt voor de hulp. Maar nu ga je wel verder dan mijn VBA kennis.
Ik had hem zo eenvoudig mogelijk uitgeschreven.

Maar ik had een voorbeeld bestand gemaakt, hier in zette ik: Waarde1, waarde2, waarde3 etc.

Maar dit kunnen ook zijn: Auto, Deur, Band, Velg etc.
Hoe kan ik die waarde nu aanpassen, want hij telt nu altijd waarde + een getal.

Als ik dat weet kan ik weer verder worstelen met de formules.

bvd.
 
Dan kan je er zoiets van maken

Code:
c00 = IIf(CheckBox1, "Waarde1, ", "") & IIf(CheckBox2, "Waarde2, ", "") & IIf(CheckBox3, "Waarde3, ", "") & IIf(CheckBox4, "Waarde4, ", "")
If Len(c00) > 0 Then ws.Cells(iRow, 5) = Left(c00, Len(c00) - 2)
 
Tja, dat krijg je ervan als je verkeerde voorbeelden geeft. Altijd voorbeeldjes maken die overeenkomen met de werkelijkheid, dan kunnen wij daar ook op inspelen. Nu kreeg je een antwoord voor één specifieke situatie. Overigens kun je dat met een Array makkelijk oplossen.
 

Bijlagen

Ja ik even een aftreksel gemaakt omdat er informatie in het andere bestand stond.
Maar je hebt gelijk volgende keer zou ik hem dichter bij de waarheid maken.

Is hetzelfde ook mogelijk voor de TextBox?

Als je daar nog oplossing voor hebt kan ik zelf verder puzzelen en zet ik hem op opgelost. :)
 
Je blijft vaag; natuurlijk kan zoiets ook voor de tekstvakken. Punt is alleen: je geeft weer niet aan wat daar dan mee moet :).
 
Code:
Private Sub CommandButton1_Click()
   msgbox Join(Filter(Array(IIf(CheckBox1, "Waarde1", "~"), IIf(CheckBox2, "Waarde2", "~"), IIf(CheckBox3, "Waarde3", "~"), IIf(CheckBox4, "Waarde4", "~")), "~", 0), ", ")
End Sub
 
Octafish:

Ik heb in het voorbeeld bestand Textbox1, Textbox2, textbox 3, Textbox 4 staan.
Nu wil ik dat Textbox t/m 3 in rij A komt. (Invul van textbox1, invul textbox2, invul textbox 3)
En dat Textbox 4 in rij B komt

Dus eigenlijk op dezelfde manier als wij met checkboxen hebben gedaan.

Ik hoop dat ik nu duidelijk ben.

bvd,
 
Kleine aanpassing nodig; die had je vermoedelijk met enig nadenken ook wel kunnen vinden :).
Code:
    arr = Array("Auto", "Deur", "Band", "Velg")
    iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    For i = 1 To 3
        If Not Me("TextBox" & i).Value = "" Then
            If Not tmp = "" Then tmp = tmp & ", "
            tmp = tmp & Me("TextBox" & i).Value
        End If
    Next i
    ws.Cells(iRow, 1).Value = tmp
    ws.Cells(iRow, 2).Value = Me.TextBox4.Value
    
    tmp = ""
    For i = 1 To 4
        If Me("CheckBox" & i).Value = True Then
            If Not tmp = "" Then tmp = tmp & ", "
            tmp = tmp & Me("CheckBox" & i).Caption
        End If
    Next i
    ws.Cells(iRow, 5).Value = tmp
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan