• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

UserForm Checkbox data in cel

Status
Niet open voor verdere reacties.

Euro010

Gebruiker
Lid geworden
8 feb 2013
Berichten
29
Beste Forumleden,

Ik heb een UserForm vraag en specifiek een vraag over CheckBox-en.
Ik ben een werkoverzicht aan het maken voor mijn collega's.
Dat kan uiteraard droog in Excel intypen, maar het is wel fancy om een UserForm daarvoor te gebruiken.
Nu heb ik een bestand gemaakt met daarin verschillende kolommen, te weten:

Omschrijving, Inkoper, Regio, etc.

Voor Omschrijving heb ik een TextBox gebruikt en voor Regio en Inkoper een ListBox.
Nu heb ik een VBA code gevonden die netjes de inhoud van een TextBox en ListBox in een bepaalde cel plaatst.
Maar, nu kom ik er niet uit met CheckBox-en.
Ik heb voor het gemak een bestandje gemaakt met daarin het gevraagde.
Ik wil in kolom C de uitkomst hebben van de CheckBox-en.
Stel, ik geef een vinkje aan Aannemer 1, Aannemer 2 en Ingenieur 2, dan moet de inhoudt van cel C6 worden:

Aannemer 1, Aannemer 2 en Ingenieur 2

Dus de aangevinkte partijen, gescheiden door een komma teken.

Hoe krijg ik dit voor elkaar?

Graag jullie hulp!

Met vriendelijke groet,

Joost Gulden


P.S. Dit is de VBA Code die ik gebruk voor de TextBox-en en ListBox-en.
Het stukje code voor CheckBox-en moet dus verweven worden in deze code (denk ik).

Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Werkoverzicht")

'find first empty row in database
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'check for a Name number
If Trim(Me.TextBox1.Value) = "" Then
Me.TextBox1.SetFocus
MsgBox "Please complete the form"
Exit Sub
End If

'copy the data to the database
ws.Cells(iRow, 4).Value = Me.TextBox1.Value
ws.Cells(iRow, 5).Value = Me.ListBox1.Value
ws.Cells(iRow, 6).Value = Me.ListBox2.Value
ws.Cells(iRow, 7).Value = Me.TextBox2.Value
ws.Cells(iRow, 8).Value = Me.TextBox3.Value
ws.Cells(iRow, 9).Value = Me.TextBox4.Value
ws.Cells(iRow, 9).Value = Me.TextBox5.Value
ws.Cells(iRow, 11).Value = Me.TextBox6.Value
ws.Cells(iRow, 14).Value = Me.TextBox7.Value


MsgBox "Data added", vbOKOnly + vbInformation, "Data Added"
'clear the data
Me.TextBox1.Value = ""
Me.ListBox1.Value = ""
Me.ListBox2.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox4.Value = ""
Me.TextBox5.Value = ""
Me.TextBox6.Value = ""
Me.TextBox7.Value = ""
Me.TextBox1.SetFocus

End Sub
 

Bijlagen

Laatst bewerkt:
Bedankt Leo.
Probleem alleen is dat alleen de verwijzing naar C6 gaat.
De volgende keer moet het dan in C7, C8, C9, etc. komen te staan.
Dus nieuwe input = nieuwe regel.
 
Leo, ook voor dit onderwerp bedankt!
Mocht het inbouwen niet lukken in mijn moederbestand, dan kom ik hier op terug.
 
Leo, het inbouwen is inmiddels gelukt.

Nu kan het in voorkomen dat een collega een partij uitnodigt die niet gedefinieerd is.
Ik heb dus een CheckBox aangemaakt met 'anders, namelijk' en daarachter een TextBox waarin de collega kan invullen welke partij het is.

Is er een mogelijkheid om, wanneer 'anders, namelijk' aangevinkt wordt dat hij de waarde in de TextBox aanneemt?
Dat er zeg maar een soort koppeling is tussen beide boxen.

Zie voorbeeld:

Bekijk bijlage Werkoverzicht Inkoop Rapportage2.xlsm
 
met deze aanpassing
Code:
Private Sub CommandButton1_Click()
Dim item As String, cCont As Control
Me.CheckBox7.Caption = TextBox1
For Each cCont In Me.Controls
    If TypeName(cCont) = "CheckBox" Then
        If cCont = True Then item = item & cCont.Caption & ","
    End If
Next cCont
If Len(item) > 0 Then Sheets("Werkoverzicht").Range("C" & Rows.Count).End(xlUp).Offset(1) = Left(item, Len(item) - 1)
For Each cCont In Me.Controls
    If TypeName(cCont) = "CheckBox" Then cCont = False
Next cCont
Me.CheckBox7.Caption = "anders, namelijk"
TextBox1 = ""
End Sub

mvg
Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan