Verplichte tekstboxen, comboboxen en Optionbuttons

Status
Niet open voor verdere reacties.

ExcelTonnie

Gebruiker
Lid geworden
5 jul 2016
Berichten
276
Ik heb een userform met Tekstboxen, ComboBox en ook Optionbuttons.
Deze moeten allen verplichte invoer of keuzes worden.
Het grootste gedeelte lukt goed door dit forum echter zit ik er nog mee hoe ik dit kan instellen voor de OptionButtons.

Onderstaand zoals het er nu uit ziet en goed werkt, uitgezonderd voor de OptionButtons.

Code:
'Controle of alle velden zijn ingevoerd
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

Geprobeerd heb ik het volgende maar werkt niet.

Code:
'Controle of alle velden zijn ingevoerd
Dim ctl_Cont As Control

For Each ctl_Cont In Me.Controls
If TypeName(ctl_Cont) = "TextBox" Or TypeName(ctl_Cont) = "ComboBox" Or TypeName(ctl_Cont) = "Option" Then
If ctl_Cont.Value = "" Then
MsgBox "De " & TypeName(ctl_Cont) & Space(1) & ctl_Cont.Name & " is niet ingevuld!"
End If
End If
Next
 
Wij kunnen niet zien om hoeveel keuzerondjes het gaat en in welke groepen die zijn ingedeeld.
 
Wij kunnen niet zien om hoeveel keuzerondjes het gaat en in welke groepen die zijn ingedeeld.

De groepsnaam = Uitvoerenden

Code:
'Welke persoon of Groep blokkeerd via een keuzerondje
If Option_TeamA.Value = True Then
Range("C19").Value = "Team A"
ElseIf Option_TeamB.Value = True Then
Range("C19").Value = "Team B"
ElseIf Option_TeamC.Value = True Then
Range("C19").Value = "Team C"
ElseIf Option_TeamD.Value = True Then
Range("C19").Value = "Team D"
ElseIf Option_TeamD.Value = True Then
Range("C19").Value = "Team D"
ElseIf Option_TeamE.Value = True Then
Range("C19").Value = "Team E"
ElseIf Option_kcTonnie.Value = True Then
Range("C19").Value = "K.C. (Tonnie)"
ElseIf Option_kcJeanette.Value = True Then
Range("C19").Value = "K.C. (Jeanette)"
ElseIf Option_kcEdward.Value = True Then
Range("C19").Value = "Hfd. K.C.Edward"
Else
Range("C19").Value = ""

End If
 
Code:
for each it in controls
   if typename(it)="OptionButton" then if it=true then exit for
next
  if typename(it)="OptionButton" then if it=true then cells(19,3)=it.caption
 
Laatst bewerkt:
Heb deze code ergens tussengeplaatst maar doet niets, als ik geen OptionButton geselecteerd heb wat de bedoeling is.



for each it in controls
if typename(it)="OptionButton" then if it=true then exit for
next
if typename(it)="OptionButton" then if it=true then cells(19,3)=it.caption
 
Mij lijkt het dat de code in #4 een versimpeling is van de code in #3. Uit de code in #4 kan je opmaken dat een optionbutton een Boolean als resultaat geeft en dus niet "" kan zijn. Dit soort zaken kan je vrij eenvoudig vinden door gebruik te maken van de helpfunctie of via de objectbrowser.


Knipsel.PNG
 
Mij lijkt het dat de code in #4 een versimpeling is van de code in #3. Uit de code in #4 kan je opmaken dat een optionbutton een Boolean als resultaat geeft en dus niet "" kan zijn. Dit soort zaken kan je vrij eenvoudig vinden door gebruik te maken van de helpfunctie of via de objectbrowser.

Helaas heb ik nog te weinig kennis hiervan om dit te begrijpen.
 
'Controle of alle velden zijn ingevoerd
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
Met deze code werken de tekstboxen en ComboBoxen prima als deze niet ingevuld zijn.
Helaas ben ik er nog niet uit hoe ik dit kan realiseren voor de OptionButtons.

Foutmelding.JPG

for each it in controls
if typename(it)="OptionButton" then if it=true then exit for
next
if typename(it)="OptionButton" then if it=true then cells(19,3)=it.caption

Iemand dit mij dit kan uitleggen wat te doen.
Heb meerdere groepen OptionButtons maar krijg geen melding als iets niet aangevinkt is.
 
Er staat geen msgbox in dat stukje code, dus geen melding.
Als het aangevinkt is krijg je de tekst van bijschrift in een cel.
 
Er staat geen msgbox in dat stukje code, dus geen melding.
Als het aangevinkt is krijg je de tekst van bijschrift in een cel.

Welke code en waar moet ik de toevoeging doen om wel een melding te krijgen.
Melding "Geen Keuze voor welk Team"
 
Bij opvolgende berichten hoef je niet te quoten en kan je op de reageerknop klikken.

Wie wil er nou een msgbox op elke niet aangevinkte optionbutton.
Bij die control kan er altijd maar een aangevinkt zijn tenzij in een frame.
En dat zie ik niet terug in je code.
 
Ok zal eraan denken, dacht dat het zo moest.

Ik wil wel graag een melding laten geven als ze "Bewust of Onbewust" vergeten om een optie te kiezen.
Is dit niet te realiseren dan op de een of andere manier want begrijp het niet helemaal.
Nu is het zo als ik geen optie kies dan kan ik naar de volgende invoer velden gaan terwijl ik de optionbutton verplicht wil.
Let wel ik heb meerdere OptionButton groepen en een daarvan is "Uitvoerenden"
 
Voor een frame met drie options.
Code:
For Each it In frame1.Controls
   If it = false Then y = y + 1
Next
if y = 3 then msgbox "er is niets aangevinkt"
deze voor elke.
Code:
For Each it In frame1.Controls
   If it Then y = 1
Next
if y=0 then msgbox "er is niets aangevinkt"
 
Laatst bewerkt:
Code:
For Each it In frame1.Controls
   If it Then y = 1
Next
if y=0 then msgbox "er is niets aangevinkt"

Dit werkt perfect, precies wat ik wilde.
Super bedankt.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan