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

vereenvoudigen van code

Status
Niet open voor verdere reacties.

Eastw00d

Gebruiker
Lid geworden
3 mrt 2013
Berichten
118
ik heb een reeks checkboxen (ong. 42). deze laat ik invullen mbv deze code:
Code:
Private Sub CheckBox1_Change()
 Blad23.[c2].Value = CheckBox1.Value
 TextBox43.Value = Blad23.[D44]
 TextBox44.Value = Blad23.[E44]
End Sub
Private Sub CheckBox2_Change()
 Blad23.[c3].Value = CheckBox2.Value
 TextBox43.Value = Blad23.[D44]
 TextBox44.Value = Blad23.[E44]
End Sub
Private Sub CheckBox3_Change()
 Blad23.[c4].Value = CheckBox3.Value
 TextBox43.Value = Blad23.[D44]
 TextBox44.Value = Blad23.[E44]
End Sub
Private Sub CheckBox4_Change()
 Blad23.[c5].Value = CheckBox4.Value
 TextBox43.Value = Blad23.[D44]
 TextBox44.Value = Blad23.[E44]
End Sub

Private Sub CheckBox43_Change()
Blad23.[F2].Value = CheckBox43.Value
 TextBox43.Value = Blad23.[G44]
 TextBox44.Value = Blad23.[E44]
End Sub

Nu lijkt het mij ook mogelijk om deze code voor alle checkboxen in een minder aantal regels te schrijven. Ik dacht dmv een for/next statement. Maar dit lijkt me niet mogelijk daar dit statement alleen in een sub routine bruikbaar is.
Hoe pas ik dit dan toe in de regel Private sub Checkbox_change()?

Al vast bedankt!
 
Daar valt niet veel aan te vereenvoudigen omdat iedere checkbox z'n eigen Change event heeft.
Wat je wel kan doen is de repeterende opdrachten in een aparte routine zetten:
Code:
Private Sub CheckBox1_Change()
 Call TB43_44
 Blad23.[c2].Value = CheckBox1.Value
End Sub

Private Sub CheckBox2_Change()
 Call TB43_44
 Blad23.[c3].Value = CheckBox2.Value
End Sub

Private Sub CheckBox3_Change()
 Call TB43_44
 Blad23.[c4].Value = CheckBox3.Value
End Sub

Private Sub CheckBox4_Change()
 Call TB43_44
 Blad23.[c5].Value = CheckBox4.Value
End Sub

Private Sub CheckBox43_Change()
 Call TB43_44
 Blad23.[F2].Value = CheckBox43.Value
End Sub

Sub TB43_44()
 TextBox43.Value = Blad23.[G44]
 TextBox44.Value = Blad23.[E44]
End Sub

Of je moet met een eigen Class module gaan werken waar je de betreffende Checkboxes lid van maakt maar dat lijkt me overbodig in deze.

Maar dit lijkt me niet mogelijk daar dit statement alleen in een sub routine bruikbaar is.

Waar denk je dat Sub in Private Sub voor staat? ;)
 
Laatst bewerkt:
Code:
Private Sub CheckBox1_Change()
  M_snb 1
End Sub

Private Sub CheckBox2_Change()
 M_snb 2
End Sub

Sub M_snb(y)
  with Blad23
    .cells(y+1,3)=Me("checkbox" & y)
    TextBox43 = .cells(44,4)
    TextBox44 = .cells(44,5)
  end with
End sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan