Wijziging doorvoeren VBA na keuze via selectievak

Status
Niet open voor verdere reacties.

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
901
Beste Helpmij'ers,

Het is mijn bedoeling om via een selectievakje de waarde van cel J2 op ONWAAR te zetten. Onderstaande werkt niet bij het aanklikken van keuze, alleen wanneer ik in cel I2 ga staan en op enter druk wordt de code geactiveerd. Dit is niet de bedoeling, zoals gezegd dient de code geactiveerd te worden bij het aanklikken. Ik heb zelf het vermoeden dat het zit in "Private Sub Worksheet...", alleen heb ik hier niets kunnen vinden wat het wel moet zijn.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("I2") = True Then Range("J2") = False
End Sub

Een antwoord zie ik met veel belangstelling tegemoet, alvast bedankt.

Robert
 
Gebruik je een ActiveX- of een formulier object voor dat selectievakje?
De code moet sowieso achter het object komen.
 
Laatst bewerkt:
Code:
Private Sub CheckBox1_Click()
 
Wat HSV zegt geldt voor een ActiveX selectievakje.
En dan:
Code:
Range("J2") = Not Range("I2")

Maar ik denk dat je een formulier object hebt met I2 als gekoppelde cel.
Code:
Sub Selectievakje1_Klikken()
    Range("J2") = Not Range("I2")
End Sub

Maar die kan je ook weer koppelen aan de macro header van HSV.
Zoals je ziet, weer meer mogelijkheden.
En kan je heel simpel een voorbeeld van geven in de vorm van een documentje.
 
Laatst bewerkt:
Hoe kan ik zien welk nummer er bij dat selectievakje hoort. In jouw voorbeeld is dat 1, alleen werkt dit niet.
 
Klik met rechts op het object en kies Macro toewijzen.
 
Prima voorbeeldje, en die werkt ook gewoon.
Of werkt het niet zoals je wilt?
 
Laatst bewerkt:
De code is niet gekoppeld Ed. :d
 
Daar is ook geen code voor nodig met die 2 vakjes :)
Vandaar de vraag of het niet werkt zoals hij wil.
 
Geen idee, misschien moet het tegendraads werken.
 
Helaas moet deze iets meer doen, wanneer het ene selectievak aangevinkt is, dient de ander uitgezet (uitgevinkt) te worden, dat is uiteindelijk de bedoeling. Ik dacht dit op te kunnen lossen door een simpele vba-code.
 
Zoals ik al eerder liet zien maar dan nu met 2 selectievakjes dus. Vandaar altijd een voorbeeld laten zien.
Koppel de selectievakjes aan hun respectievelijke macro:
Code:
Sub Selectievakje1_Klikken()
    Range("J2") = Not Range("I2")
End Sub

Sub Selectievakje2_Klikken()
    Range("I2") = Not Range("J2")
End Sub

Of kortweg:
Code:
Sub Selectievakje1_Klikken()
    [J2] = Not [I2]
End Sub

Sub Selectievakje2_Klikken()
    [I2] = Not [J2]
End Sub

Of iets geavanceerder met 1 macro:
Code:
Sub ToggleSelectie()
    Select Case Application.Caller
        Case "Check Box 1": [J2] = Not [I2]
        Case "Check Box 2": [I2] = Not [J2]
    End Select
End Sub

Je document:
Bekijk bijlage Selectievak vba.xlsm
 
Laatst bewerkt:
het werkt prima:thumb:. Wat wel vreemd is dat het niet werkt wanneer hij de data uit een ander sheet haalt.

Code:
Sub Selectievakje1_Klikken()
    Sheets("Data").Range("J2") = Not Range("I2")
End Sub

Sub Selectievakje2_Klikken()
    Sheets("Data").Range("I2") = Not Range("J2")
End Sub
 
Tuurlijk werkt dat wel maar dan moet je ook bij de Range achter Not het juiste blad gebruiken.
Of als het in beide gevallen om hetzelfde blad gaat:
Code:
Sub Selectievakje1_Klikken()
    With Sheets("Data")
        .Range("J2") = .Range("I2")
    End With
End Sub

Sub Selectievakje2_Klikken()
    With Sheets("Data")
        .Range("I2") = .Range("J2")
    End With
End Sub
 
Laatst bewerkt:
wat stom, ik zie nu mijn fout. Tijd om te stoppen...ik zie het niet meer zo helder. Ik wil jullie allebei heel erg bedanken...Achteraf zó simpel, ik dacht te moeilijk.

Code:
Sub Selectievakje1_Klikken()
    Sheets("data").Range("J2") = Not Sheets("data").Range("I2")
End Sub

Sub Selectievakje2_Klikken()
    Sheets("data").Range("I2") = Not Sheets("data").Range("J2")
End Sub
 
Zoals je in #17 kunt zien hoef je Sheets("Data") maar 1x per Sub te gebruiken.
Als je het laatste voorbeeld in #15 gebruikt zelfs maar 1x in het geheel.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan