Hoi Arnold,
't Is omdat je het zelf nadrukkelijk vraagt
ALLE info , suggesties en opmerkingen zijn zeer welkom
Het laatste wat ik zou willen is je demotiveren, maar ik zie zo direct een aantal bizarre zaken en heb nog maar enkel vlug de code achter CommandButton1 bekeken.
(By the way, ik probeer alweer het zo leesbaar mogelijk te houden)
For datum = 26 To 130: Rem 130-26 = 104 trekkingen is 2 trekkingen per week
If Cells(datum, 1).Value = "" Then Cursor = Cells(datum, 1): Exit For
Next
Hiermee ken je een waarde toe aan de variabele 'Cursor' en verder gebeurt daar dus niets mee.
Als je die cel effectief wil selecteren heb je alweer GEEN lus nodig:
datum = Cells(Rows.Count, 1).End(xlUp).Row + 1
If datum < 26 Then datum = 26
Cells(datum, 1).Select
Ik ben hier de variabele 'datum' blijven gebruiken omdat je daar verder ook nog wat mee doet.
Dan de controle zelf:
For lijn = 3 To 22: Rem 20 lijnen maximum gespeeld
For contr = 1 To 6: Rem controle op 6 nummers in een rij en als er een nummr juist is kleur dan het vakje geel
Dat houdt in dat je elke lijn laat controleren, ook als ze leeg is.
En : telkens 'contr' met 1 verhoogt laat je al controleren hoeveel juiste er zijn, dat is ook een grote tijdverspilling.
De 'Next' die bij 'contr' hoort kan dus beter 6 regels hoger staan.
Dit zou dus al stukken sneller moeten gaan:
Rem controle op juiste nummers
lijn = 3
While Cells(lijn, 1) <> ""
'For lijn = 3 To 22: Rem 20 lijnen maximum gespeeld
For contr = 1 To 6: Rem controle op 6 nummers in een rij en als er een nummr juist is kleur dan het vakje geel
If lottonr1 = Cells(lijn, contr).Value Then Cells(lijn, contr).Interior.ColorIndex = 6: teller = teller + 1
If lottonr2 = Cells(lijn, contr).Value Then Cells(lijn, contr).Interior.ColorIndex = 6: teller = teller + 1
If lottonr3 = Cells(lijn, contr).Value Then Cells(lijn, contr).Interior.ColorIndex = 6: teller = teller + 1
If lottonr4 = Cells(lijn, contr).Value Then Cells(lijn, contr).Interior.ColorIndex = 6: teller = teller + 1
If lottonr5 = Cells(lijn, contr).Value Then Cells(lijn, contr).Interior.ColorIndex = 6: teller = teller + 1
If lottonr6 = Cells(lijn, contr).Value Then Cells(lijn, contr).Interior.ColorIndex = 6: teller = teller + 1
If teller > 2 Then Cells(lijn, 8).Value = teller: Rem zijn er 3 of meer juist markeer dit dan in vakje juist !
If reservenr = Cells(lijn, contr).Value Then Cells(lijn, contr).Interior.ColorIndex = 3: reserve = 1: Rem controle op reserve nummer en rood kleuren
Next
Rem controleer nu of er 2 of meer met de reserve juist zijn ,en zet de juiste winst voor vakje "juist" op de betreffende rij
If teller = 1 And reserve = 1 Then Cells(lijn, 8).Value = "1+"
If teller = 2 And reserve = 1 Then Cells(lijn, 8).Value = "2+"
If teller = 3 And reserve = 1 Then Cells(lijn, 8).Value = "3+"
If teller = 4 And reserve = 1 Then Cells(lijn, 8).Value = "4+"
If teller = 5 And reserve = 1 Then Cells(lijn, 8).Value = "5+"
Rem zijn er maar 2 nummers juist in een of meerdere rijen en geen reservenummer is er dus geen prijs en wis dan de kleur in alle vakjes van deze rijen
If teller < 1 And reserve = 1 Or teller < 3 And reserve = 0 Then
'hier ook lus weggewerkt :
Range("A" & lijn & ":H" & lijn).Interior.ColorIndex = 19
End If
teller = 0: reserve = 0
lijn = lijn + 1
Wend
En dan heb je onderaan nog staan
Rem zet cursor op juiste vakje om winst in te vullen of indien geen winst zet cursor op de juiste rij om volgende trekking in te vullen
If winst > 2 Then Cells(datum - 1, 10).Select
If winst < 3 Then Cells(datum, 1).Select
terwijl je bovenaan 'winst' de waarde 0 geeft en deze verderop nergens kan wijzigen.
Misschien hier al eens mee beginnen, en als je enthousiasme dan nog intact is (en ikzelf opnieuw wat tijd vind...) kijken we verder (?)
Groeten,
pitufo