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

Checkbox VBA functie herhalen

Status
Niet open voor verdere reacties.

mbeelen81

Nieuwe gebruiker
Lid geworden
15 jun 2015
Berichten
4
Beste,

Ik ben bezig voor mijn werk met een lijst te maken, dat als je een vinkje zet in een bepaalde checkbox dat dit een waarde geeft.
Deze waardes worden opgeteld en dit geeft een percentage van 0 tot 100%
Nu heb ik voor elke checkbox een aparte VBA code, maar als ik dit wil kopiëren voor de volgende rijen, dan moet ik deze code opnieuw invoeren.
Of is hier een andere manier op?

Hopelijk kan iemand mij hiermee helpen.

Ik heb het excel bestand bijgevoegd, en hieronder staat de VBA code die ik gebruik.

Code:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then Range("i2").Value = 0.25
If CheckBox1.Value = False Then Range("i2").Value = 0
End Sub
Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then Range("f2").Value = 0.25
If CheckBox2.Value = False Then Range("f2").Value = 0
End Sub
Private Sub CheckBox3_Click()
If CheckBox3.Value = True Then Range("g2").Value = 0.25
If CheckBox3.Value = False Then Range("g2").Value = 0
End Sub
Private Sub CheckBox4_Click()
If CheckBox4.Value = True Then Range("h2").Value = 0.25
If CheckBox4.Value = False Then Range("h2").Value = 0
End Sub
 

Bijlagen

Je moet sowieso een _Click routine per checkbox hebben. Die twee regels code kan wel veel korter:
Code:
Private Sub CheckBox1_Click()
    Range("I2") = IIf(CheckBox1, 0.25, 0)
End Sub
 
Laatst bewerkt:
Het kan met een code in een klassen module, maar dat is pas interessant als het om veel en veel meer checkboxen gaat.
Voor die enkele checkbox zou ik rustig zo door gaan.
Heir wel een kortere schrijfmethode.

Code:
Private Sub CheckBox1_Click()
  Range("i2").Value = Iif(CheckBox1, 0.25,0)
End Sub
 
Bedankt voor jullie hulp.
Maar aan het eind van de rit zou het gaan om ongeveer 300 regels.

Maar ik kom in ieder geval al weer een heel eind verder.

Weet een van jullie misschien ook waar ik meer kan leren over het coderen in VBA, ben er nog echt een newbie in.
 
Met een code in een klasse-module moet er wel lijn in je Excelbestand zitten.
Nu ga je van de eerste checkbox naar de laatste cel in volgorde (kolom I).
De tweede gaat naar de eerste (kolom F).
Dit zou dus op volgorde moeten wil je een goede code schrijven.


Hier op het forum kun je een hoop leren, icm een Vba Boek.
 
Ik zou het zonder checkboxen doen maar met een dubbelklik in de cel.
Tekst op wingdings2, heb je maar 1 keer een klein stukje code nodig en
je hoeft niet al die checkboxen te maken.

En zoals Harry zei een logische volgorde aanhouden

Bekijk bijlage Kopie van test.xlsm




Niels
 
@Niels28

Is dit ook mogelijk met de checkboxen standaard uitgevinkt.
Nu is de optie geselecteerd met een X of een V

Dit werkt wel super zo.

Alvast heel erg bedankt.
 
Ja dat kan zo

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, Range("A2:D300")) Is Nothing Then
  Target.Value = IIf(Target.Value = "R", [COLOR="#FF0000"]Chr(163)[/COLOR], "R")
  Target.Offset(, 5).Value = IIf(Target.Value = "R", 0.25, 0)
  Cancel = True
  End If
  
End Sub

Niels
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan