• 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.

1 of meerdere check boxen verplicht

Status
Niet open voor verdere reacties.

Advanm

Gebruiker
Lid geworden
24 jun 2014
Berichten
25
Hoi,

Voor een klein project loopt ik tegen het volgende probleem aan.

Ik heb op een sheet in een regel 5 checkboxen staan. 1 van deze checkboxen moet aangevinkt worden om verder te gaan om het sheet op te kunnen slaan.

dit heb ik inmiddels gevonden door de volgend code.


Code:
If ipadr1.Value = False And ipadr2.Value = False And ipadr3.Value = False And ipadr4.Value = False And ipadr5.Value = False Then
    MsgBox ("Dit is een verplicht veld" & vbCr & "Er moet minstens een IP nr ingevult zijn"), vbOKOnly + vbExclamation, "verplicht veld"
    Range("c26").Activate
    Exit Sub
End If

Hoe kan ik nu in de code er achter komen welke checkbox is aangevinkt en daarop de cell activeren waar deze checkbox is geplaast?

Bekijk bijlage project - test.xlsb
 
Laatst bewerkt:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim aantal As Integer, ch As Integer
'Deze macro is geschreven door Zapatr
aantal = 0
For ch = 1 To 5
If ActiveSheet.OLEObjects("Checkbox" & ch).Object.Value = 1 Then
aantal = aantal + 1
End If
Next ch
If aantal = 0 Then
MsgBox ("Hier de tekst van jouw msgbox")
End If
End Sub
 
Hoi,

Dank je voor je antwoord, maar hoe kan ik dit verwerken in de code zoals ik al had?

Code:
If ipadr1.Value = False And ipadr2.Value = False And ipadr3.Value = False And ipadr4.Value = False And ipadr5.Value = False Then
    MsgBox ("Dit is een verplicht veld" & vbCr & "Er moet minstens een IP nr aangevinkt zijn"), vbOKOnly + vbExclamation, "verplicht veld"
    Range("c26").Activate
    Exit Sub
End If

Als 1 van deze is geselecteerd moet ik hierna de juiste cell actief kunnen maken.

afhankelijk welke true is moet cell c26 of d26 of e26 etc actief worden met
Code:
voor ipadr1.Value= true dan moet  range("c26").activate 

als ipadr2.value= true dan moet  met range("D26").activate cell D26 actief worden.

Ik hoop dat ik het zo juist heb geformuleerd.
 
Laatst bewerkt:
Mijn code in bericht #6 voorkomt dat het bestand kan worden opgeslagen als er geen enkele checkbox is aangevinkt. Die code treedt automatisch in werking zodra wordt getracht om het bestand op te slaan. En die code moet vanzelfsprekend geplaatst worden in "ThisWorkbook". Ik dacht dat dat de bedoeling was.
Je noemt in je bericht hierboven 5 checkboxen en 3 cellen. Zonder het bestand in te zien is onmogelijk te zeggen wát bij wát hoort of wát aan wát is gekoppeld. Ik kan nu wel allerlei opties (code) plaatsen die mogelijk zijn, maar zonder voorbeeldbestand blijft het gissen. Plaats dus een voorbeeldbestand, dan heb je snel een oplossing, van mij of van anderen. (ikzelf kan vanavond pas weer antwoorden).
 
Wat is precies de bedoeling? Vanaf rij 26 staan er in elke rij checkboxen. Moeten gebruikers die zelf aanvinken, of moeten die automatisch aangevinkt worden als er in de betreffende cellen wat is ingevuld?
En wélke actie moet er precies uitgevoerd worden na wélke handeling? ik bedoel: als er bv. in rij 26 geen/wel een checkbox is (of meerdere zijn) aangevinkt, wát moet er dan gebeuren? Jouw code in het eerste bericht geeft daarover geen uitsluitsel.
 
Laatst bewerkt:
@Advanm

En waar in de bijlage staat dan de code waar je aan refereert?
 
Hoi,

Het is de bedoeling dat de gebruikers zelf de checkboxen moeten aanvinken. Als een van de checkboxen wordt aangevinkt moet daarna de melding komen dat er in de cell waarin de checkbox staat nog iets moet worden ingevuld.

ik hoop dat ik zo duidelijk ben.
 
De oplossing die je voor ogen hebt is mogelijk,maar om in 75 cellen na elke wijziging erop moeten geattendeerd te worden dat een vinkje moet worden geplaatst, dat is een erg onpraktische manier van werken en erg gebruiksonvriendelijk. Zou het niet veel beter zijn om, als er in een cel een wijziging heeft plaatsgevonden, automatisch een vinkje te plaatsen als er wat is ingevuld en het vinkje niet te plaatsen als de cel leeg blijft? Het kan allebei hoor, maar mijn voorstel werkt een stuk handiger.
 
Hoi,

Dat zou denk ik inderdaad een hoop checks minder zijn. Ik heb dit geprobeerd maar hij zou dan al moeten aangevinkt worden als de waarde veranderd van de cell ( van "" naar ingevult )

Dan hoef ik alleen maar 5 keer te checken op de regel of er ietrs is ingevuld en dan meteen de checkbox aan laten vinken als een cell wordt ingevuld.

Kun je me een voorbeeld geven hoe dit in de code in te voegen?

ik heb nu het volgende geprobeerd.

Code:
If Range("c25").Value = "" Then
    MsgBox ("Dit is een verplicht veld" & vbCr & "Vul hier de servernaam in"), vbOKOnly + vbExclamation, "verplicht veld"
        
        server1.Value = True
    Exit Sub
End If
 
Nu haal je er met je tekst "Dan hoef ik alleen maar 5 keer enz." er andere zaken bij waar je in bericht #8 niet over sprak. Daar schreef je dat alleen moest worden gekeken of er in een cel wat is ingevuld ongeacht op welke regel dat zou zijn. Hoe dan ook, m.b.t. het beschreven probleem: rechtsklik op de tab van het blad "productie Radiologie", kies "Programmacode weergeven" en plaats in de rechterkolom deze macro:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cb As Integer
Application.ScreenUpdating = False
'Deze macro werd geschreven door Zapatr
If Not Intersect(Target, Range("C26:G40")) Is Nothing Then
With Target
cb = .Column - 2 + 5 * (.Row - 26)
OLEObjects("Checkbox" & cb).Object.Value = False
If .Value > 0 Then
OLEObjects("Checkbox" & cb).Object.Value = True
End If
End With
End If
Application.ScreenUpdating = True
End Sub
NB: naar andere zaken dan het in dit topic beschreven probleem heb ik niet gekeken!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan