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

variabel selectievak aan kunnen vinken

Jolte

Gebruiker
Lid geworden
10 jul 2009
Berichten
22
Ik ben met een modelletje bezig en zou graag met de 'nieuwe' selectievakjes via invoegen willen werken.
Op basis van een kruistabel (tabel1) heb in beeld gebracht wanneer ik het selectievakje tevoorschijn wil laten komen.

Middels een formule lukt het mij om dit te in beeld te krijgen (tabel2). Alleen lukt het mij niet om enkele van de keuzevakjes aan te vinken en daardoor in een later stadium weer op verder te borduren.

Ik zou de formule kunnen overrulen met gegevensvalidatie obv lijst (waar;onwaar), maar dan heb ik naar mijn mening te veel muisklikken nodig.

Wie kan mij hier bij helpen?
 

Bijlagen

  • voorbeeld1.xlsm
    13 KB · Weergaven: 9
je was er bijna.. de nieuwe selectievakjes werken puur op WAAR / ONWAAR
jij had in de waarpositie van de ALS-functie leeg daardoor werkte het niet en je had ONWAAR op de verkeerde postie in de formule

daarom 2 opties die hetzelfde doet, maar de sleutel zit in welke waarde je test (ja of nee) en op welke plek dan de WAAR en ONWAAR komen

=ALS(X.ZOEKEN([@Kolom1];Tabel1[[Kolom1]:[Kolom1]];Tabel1[optie 1];"nee";0)="ja";WAAR;ONWAAR)

of jou formule werkend gemaakt
=ALS(X.ZOEKEN([@Kolom1];Tabel1[[Kolom1]:[Kolom1]];Tabel1[optie 1];"nee";0)="nee";ONWAAR;WAAR)

In het voorbeeld heb ik ook nog 1 Voorwaardelijke opmaak gemaakt voor celwaarde WAAR
voor onwaar geen voorwaarde nodig. daar kun je gewoon de gewenste tekstkleur kiezen. ik heb voor grijs gekozen.
 

Bijlagen

  • voorbeeld1(1).xlsm
    13,1 KB · Weergaven: 2
Laatst bewerkt:
Ik kan jouw oplossing goed volgen, maar dat is net niet waar ik naar op zoek ben. Wanneer er een match (ja) wordt gevonden dan dient het keuzevakje (niet aangekruist) er te komen staan. Wanneer er geen match (nee) wordt gevonden dan moet er geen vakje komen. Visueel lukt het mij om dit resultaat te creëren (zie voorbeeld), maar ik kan alleen een selectief aantal van de de weergegeven keuzevakjes nu niet aanvinken.

Het komt er op neer dat de formule nu te 'hard' is om het keuzevakje te kunnen gebruiken.

Mogelijk oplossingsrichtingen waar ik aan zit te denken, maar niet weet hoe toe te passen:
- formule 'zachter' maken, zodat keuze wel weer gemaakt kan worden
- geen formule, maar op basis van 'voorwaardelijke opmaak' keuzevakje zichtbaar maken, waarbij ik het liefst ook nog de bewerking van de cel bij 'nee' wens te blokkeren, zodat er niet per abuis toch een keuze gemaakt kan worden
 
Laatst bewerkt:
Ah op die manier...

Dat kun je oplossen met een event macro dat als je dubbelklikt in de cel er dan een checkbox verschijnt

Met onderstaande code kun je dubbelklikken om de waarde in de cellen van tabel 3 op waar of onwaar te zetten.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Intersect(Target, Me.ListObjects("Tabel3").DataBodyRange) Is Nothing Then Exit Sub
Target = Not Target
Cancel = True

End Sub
Deze code plak je in de het codeblad Blad1(Blad1)

Dit werkt dan, maar dan is de volgende vraag of je de tabel niet so wie so met VBA moet vullen ipv een formule want anders krijg je een soort rare mix. van formules en geklikte cellen. die een waarde bevatten ipv een formule
 
Dit is inderdaad de oplossing zoals ik die (vooreerst) zocht! Bedankt!

Maar ik ben wel met je eens dat dit niet de meest optimale manier is om middels een keuze een formule te overrulen. Jij geeft aan dat de tabel ook middels VBA gevuld kan worden. Dat lijkt mij zeker de beste oplossing. Maar hoe doe ik dat?
 
Met onderstaande code kun je de waarden in tabel 1 waar onwaar voor tabel 3
Het overschrijft dan wel alle regels.
Sub Tabel3Vullen()

Dim tbl1 As ListObject
Dim tbl3 As ListObject

Set tbl1 = Blad1.ListObjects("Tabel1")
Set tbl3 = Blad1.ListObjects("Tabel3")

'test if table is empty
If tbl3.ListRows.Count = 0 Then MsgBox "Tabel is leeg": Exit Sub
'If tbl3.DataBodyRange.Cells(1, 1) = "" Then MsgBox "Tabel is leeg": Exit Sub

' Loop through each row in Tabel3
For t3rw = 1 To tbl3.ListRows.Count
' Loop through columns 2 to 5 in Tabel3
For t3cl = 2 To 5
' Get the name from Table3 column 1
Dim name As String
name = tbl3.DataBodyRange(t3rw, 1).value

' Look up the name in Tabel1
Dim value As String
value = Application.WorksheetFunction.VLookup(name, tbl1.DataBodyRange, t3cl, False)

' Vertaal "JA" to TRUE and "NEE" to FALSE
If UCase(value) = "JA" Then tbl3.DataBodyRange(t3rw, t3cl).value = True
ElseIf UCase(value) = "NEE" Then tbl3.DataBodyRange(t3rw, t3cl).value = False
Else
tbl3.DataBodyRange(t3rw, t3cl).value = False
End If
Next t3cl
Next t3rw
End Sub
 
Terug
Bovenaan Onderaan