• 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 invulvelden verplicht maken.

Status
Niet open voor verdere reacties.

Takelwagen

Gebruiker
Lid geworden
16 feb 2008
Berichten
31
Ik heb een userform aangemaakt, en alles werkt. Nu wil ik dat alle comboboxen en textboxen verplicht worden om in te vullen..Heb al een beetje gezocht maar kan eigenlijks niks vinden:$....
 
Hallo,

Een ideeetje:

Private Sub CommandButton1_Click()
Dim ctl_Cont As Control

For Each ctl_Cont In Me.Controls
If TypeName(ctl_Cont) = "TextBox" Or TypeName(ctl_Cont) = "ComboBox" Then
If ctl_Cont.Value = "" Then
MsgBox "De " & TypeName(ctl_Cont) & Space(1) & ctl_Cont.Name & " is niet ingevuld!"
End If
End If
Next

End Sub
Van alle besturingselementen (textboxen, labels, comboboxen, commandbuttons etc.) op het userform wordt gekeken of het een textbox of combobox is. Is dat het geval EN de combobox/textbox is leeg dan verschijnt bijv. de volgende mededeling (per combobox/textbox):

"De combobox Combobox1 is niet ingevuld!"

Met vriendelijke groet,


Roncancio
 
Mag ik even muggeziften Roncancio?

Het is een best practice om niet te testen op volgende manier:

Code:
TextBox.value=""

beter is te testen op:

Code:
TextBox.value=vbNullString

nog beter is echter om helemaal geen string operatie uit te voeren en te testen op:

Code:
Len(TextBox.value)=0
 
Laatst bewerkt:
Mag ik even muggeziften Roncancio?
Dat mag zeker. Graag zelfs. De domste mensen zijn degene die denken dat ze alles weten.

Met vriendelijke groet,


Roncancio
 
yo,

Hmmm, interesant...Heb het namelijk op een andere manier gedaan:

If Trim(Me.TextBox1.Value) = "" Then
Me.TextBox1.SetFocus
MsgBox "alles invullen aub"
Exit Sub
End If

If Trim(Me.TextBox2.Value) = "" Then
Me.TextBox2.SetFocus
MsgBox "alles invullen aub"
Exit Sub
End If
If Trim(Me.ComboBox1.Value) = "" Then
Me.ComboBox1.SetFocus
MsgBox "alles invullen aub"
Exit Sub
End If
If Trim(Me.TextBox4.Value) = "" Then
Me.TextBox4.SetFocus
MsgBox "alles invullen aub"
Exit Sub
End If
If Trim(Me.TextBox5.Value) = "" Then
Me.TextBox5.SetFocus
MsgBox "alles invullen aub"
Exit Sub
End If
If Trim(Me.TextBox6.Value) = "" Then
Me.TextBox6.SetFocus
MsgBox "alles invullen aub"
Exit Sub
End If
If Trim(Me.ComboBox2.Value) = "" Then
Me.ComboBox2.SetFocus
MsgBox "alles invullen aub"
Exit Sub
End If
If Trim(Me.TextBox8.Value) = "" Then
Me.TextBox8.SetFocus
MsgBox "alles invullen aub"
Exit Sub
End If

Ik weet dat het heel omslachtig is:$...Maar ik ben gewoon niet zo ervaren in VBA....Is er nergens een soort van naslag werk waar ik het één en ander kan leren(nederlands)basis ken ik wel en begrijp hoe jullie script werkt...Moet gewoon nog veel leren...

Ik zit nu weer met het probleem hoe vul ik een combobox met tekst van een werkblad?! Moet ik dan echt persé met =offset(bla bla bla) werken of kan het ook anders?

Bedankt iig voor jullie tijd
 
Hallo,

Waarom Setfocus ?
Met setfocus ga je alleen maar naar een besturingselement.

Er zijn verschillende manieren om een combobox te vullen.
Je kunt bijvoorbeeld een bereik opgeven in de Rowsource van de combobox.
Dit bereik kan je uiteraard ook benoemen. Dus:
- Selecteer een bereik
- Geef het een naam: INVOEGEN - NAAM - DEFINIEREN - [naam]

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan