Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Code Lotto  (gelezen 51451 keer)

0 leden en 1 gast bekijken dit topic.

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code Lotto
« Reactie #15 Gepost op: 06 juni 2019, 09:44:45 »
Hey Arnold,

Citaat
een lid mij erop gewezen dat als ik me gelukkig voelde met mijn eigen code (die ik dan kan "lezen") ik dit vooral moest blijven doen
Maar ja natuurlijk, daar sta ik 100% achter ! Maar ik ben ook niet degene die jouw code naar een onleesbare versie heeft 'vertaald'.
Integendeel, ik heb een noodzakelijke wijziging aangebracht omdat je code regelmatig vastliep (bij QuickPick).

Citaat
ik kan nergens een "reply" van U vinden onder de naam "Pitufo"
Niet in die post, maar wel in https://www.oplossing.be/excel/foutmedling-bij-quick-pick-functie-in-lotto-programma/msg232575/#msg232575
Dat is degene waar ik zonet naar verwees. Naast die correctie had ik meteen ook het heel trage
For wis = 1 To 6
For lijn = 3 To 22
Cells(lijn, wis).Interior.ColorIndex = 19
Cells(lijn, wis).Value = ""
Next
Next
vervangen door
With Range("A3:H22")
    .ClearContents
    .Interior.ColorIndex = 19
End With

Ik meen me te herinneren dat je daar redelijk enthousiast over was (ook het leesbaarheidsgehalte lijkt me geen probleem te kunnen vormen) en net daarom...
Citaat
t'was dus zeker niet de bedoeling om Uw hulp naast mij neer te leggen
...had ik dat ook helemaal niet gedacht, maar wou je er net op wijzen dat je misschien per ongeluk iets over het hoofd had gezien.

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: Code Lotto
« Reactie #16 Gepost op: 06 juni 2019, 10:43:31 »
@Pitufo :  :-[ , tis waar ik was deze post over het hoofd gezien...
en je hebt 100% gelijk , ik was idd razend enthousiast over je oplossing om een bereik te wissen via een "range" i.p.v. mijn oubollig "for wis" enz....
ik ben er zeker van dat ik dat heb gebruikt maar om 1 of andere reden jouw bestand gewisseld hebben met een ander.
ik ga nu gans mijn programma aanpassen naar Uw code en deze apart opslaan om eventueel in de toekomst te gebruiken.
en Uw code is zèker leesbaar !
Bedankt voor Uw begrip !
Mvg,
Arnold.

HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: Code Lotto
« Reactie #17 Gepost op: 06 juni 2019, 11:46:08 »
voila,
mijn code aangepast met de code van "Pitufo" , alsook het "sorteer" proces geautomatiseerd bij een nieuwe "quick Pick"....
de optie " sorteren" is dus niet meer nodig en werd verwijderd...
ik nodig iedereen uit om mijn "programma" te testen en ALLE info , suggesties en opmerkingen zijn zeer welkom  :).
Mvg,
Arnold.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code Lotto
« Reactie #18 Gepost op: 06 juni 2019, 14:43:22 »
Hoi Arnold,

't Is omdat je het zelf nadrukkelijk vraagt
Citaat
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
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: Code Lotto
« Reactie #19 Gepost op: 06 juni 2019, 17:19:31 »
voila , ondertussen al uw verbeteringen toegepast , codes zijn allemaal voor mij duidelijk.....
ik heb de optie "sorteren" opnieuw bijgevoegd , zodat je als je zelf je nummers invult dit niet moet in de juiste volgorde doen , de optie "sorteren" doet dit dan...
alleen heb ik een probleem dat als er gèèn nummers zijn ingevuld en je klikt op de optie "sorteren" de code een foutmelding geeft , ik zou dit willen vermijden maar lukt me niet.

ik heb volgende geprobeerd : als 1ste regel code onder de module "Private Sub CommandButton2_Click()"
: if range ("a3:f3").value = "" then goto "NietSorteren" , waar dan onder "NietSorteren" de cursor gewoon weer op zijn normale plaats wordt gezet....

Mvg,
Arnold.

oja : mijn enthousiasme neemt alleen maar toe  ::)


HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code Lotto
« Reactie #20 Gepost op: 06 juni 2019, 22:15:02 »
Citaat
mijn enthousiasme neemt alleen maar toe

Fijn om dat te horen. Ik heb dan maar nog wat aanpaswerk verricht. Deze keer liever met bijlage omdat het redelijk veel is.
Maar eerst dit : je had daar nog wat lege modules staan die nu verwijderd zijn. En ook nog een UserForm dat blijkbaar nergens wordt gebruikt. Die heb ik wel laten staan in de veronderstelling dat je daar misschien nog iets voor in gedachten hebt.

Ben dus nog even verder gegaan met CommandButton1 en meteen CommandButton2 omwille van je laatste vraag.
Waar ik wijzigingen heb aangebracht heb ik je bestaande code in commentaar laten staan, en tevens links en rechts ook een woordje uitleg in commentaar toegevoegd. Ik denk dat je zo het beste kan volgen. Wellicht wil je dat nadien allemaal opruimen; je zal dan zien dat de hoeveelheid code redelijk gekrompen is.
Voor alle duidelijkheid: sommige zaken maakten aanpassen echt nodig, andere zou ik eerder 'cosmetica' noemen.
Over het veelvuldig inspringen hoef je het niet eens te zijn met mij, maar zelf vind ik dat zéér bevorderlijk voor de leesbaarheid.

Ach ja, kleinigheidje nog: overal waar zaken staan als Cells(x,y).Value of Range(z).Value mag je ".Value" rustig weglaten, want dat is standaard.

Weeral benieuwd naar je oordeel...

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: Code Lotto
« Reactie #21 Gepost op: 07 juni 2019, 08:34:35 »
Goedemorgen "Pitufo" !

je aanpassingen zijn echt geweldig , en zeker met uw commentaar erbij voor mij duidelijk.
wat ik wel zie dat er hèèl veel functies zijn waarvan ik geen weet heb , ik heb nog die oude methode in mijn hoofd zitten , maar zie dat de moderne VBA veel meer maar ook veel simpelere code heeft om iets te laten uitvoeren.
ik weet niet goed wat doen nu, heb wel weer de smaak te pakken , misschien moet ik eens de ganse code in een "Userform" gieten i.p.v. "platte Excel".
ik denk er nu aan om misschien eens een goed cursus boek over VBA te kopen ? suggesties ?

ik heb ondertussen ook wat aanpassingen gedaan : ik heb het aantal rijen beperkt tot 14 (i.p.v. 20) omdat 14 rijen juist overeenkomen met een volledig ingevuld Lotto formulier van 14 kolommen.
er kan desnoods voor elk gespeeld formulier een apart Excel bestand gemaakt worden.

alvast "weeral" geweldig bedankt voor Uw hulp  :thumbsup:

Mvg,
Arnold.

HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code Lotto
« Reactie #22 Gepost op: 07 juni 2019, 10:08:38 »
Hey Arnold,

In de gauwte heb ik nog bij alle resterende commandbuttons wat opkuiswerk verricht. Er zaten nergens nog fouten in, maar her en der wat overbodige dingetjes evenals wat andere die een beetje netter konden.
Ik kon het niet laten en heb daarbij ook alle GOTO's verwijderd.
Ha ja, een "Application.Screenupdating=False" heeft geen invloed op bv. een Msgbox, dus die mag steeds als eerste instructie staan.
Verder ben ik er gerust in dat je nog steeds kan volgen  ;)

Citaat
misschien moet ik eens de ganse code in een "Userform" gieten i.p.v. "platte Excel"
Dat is zeker mogelijk, en voor een aantal mensen ook niet al te moeilijk, terwijl sommige anderen erin verloren lopen.
Nu ja, waarom ook niet proberen ?

Citaat
ik denk er nu aan om misschien eens een goed cursus boek over VBA te kopen ? suggesties ?
Oeps, zelf heb ik letterlijk alles gewoon al proberend geleerd (mét vallen en opstaan), dus da's een vraag waarop ik het antwoord moet schuldig blijven  :D

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: Code Lotto
« Reactie #23 Gepost op: 07 juni 2019, 10:49:46 »
Hey Arnold,
Ik kon het niet laten en heb daarbij ook alle GOTO's verwijderd.
pitufo

uitstekend, ik had me al zitten afvragen of dit op een andere manier kon , nu ga ik Uw code weer gaan uitpluizen....
ondertussen eens alles bezien , verbazend om te zien hoe "eenvoudig" het eigenlijk allemaal is...
ik werkte dus volledig verkeerd bij een msgbox : i.p.v. te checken of het antwoord "Yes" is en zo verder te doen , checkte ik op "NO" om dan via "if NO then GOTO" door te gaan , ingewikkeld en niet nodig....
ikke weeral veel bijgeleerd......

en blijkbaar staat mijn Userfrom ook al klaar  ;D , mooi maar dat moet ik eens bekijken of ik dat nog in mij heb , ik had in de tijd een uitstekend boek , maar dat was geleend , was van een bediende van bij mij op de fabriek en ondertussen moeten teruggeven :(

tot de volgende :-)

Arnold.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Online JeanPierre

  • Oplosser
  • ****
  • Berichten: 800
  • Geslacht: Man
  • Je bent nooit te oud om te leren!
Re: Code Lotto
« Reactie #24 Gepost op: 09 juni 2019, 08:52:24 »
Hey Pitufo,

Na de lange draad van Montagnard er tussen, ik nog eens.....
Na mijn tevredenheid deze week over mijn lotto controle, krijg ik nu een foutmelding (400 voor VBA) bij het invullen van de winst,
dit gebeurd ook bij uw formulier, terwijl dat laatst goed werkte????

Wat is daar de oorzaak van?

Grts,
Jean-Pierre.
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 800
PRIME Z270-P
NVIDIA GeForce GTX 1050 Ti 4095MB 1920 x 1080
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
Nr: 1 Model: Samsung SSD 850 EVO 250GB
Nr: 2 Model: WDC WD2003FZEX-00SRLA0
Nr: 3 Model: Canon TS8100 series USB Device
AV: Avast free
FW: Windows Firewal Enabled: True

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code Lotto
« Reactie #25 Gepost op: 09 juni 2019, 09:18:26 »
Dag JeanPierre,

Dat valt niet zomaar te zeggen, vrees ik. Ik heb zopas op mijn verstuurde versie de resultaten van de trekking van gisteren verwerkt en dat gaat nog steeds prima.
Kan het misschien dat je net iets te veel (of te weinig) op de website hebt gekopieerd ? Of misschien de noodzakelijke gegevens enkel hebt geselecteerd zonder kopiëren ? Of de verkeerde knop hebt aangeklikt na het websitebezoek ?
Je merkt het hé, ik zie wel wat mogelijkheden waardoor het fout kan gaan. Da's natuurlijk inherent aan de gekozen werkwijze.
Probeer je nog eens opnieuw, en als je zeker bent het goed te doen én de foutmelding blijft, noteer dan eventjes waar precies die foutmelding ontstaat, en stuur eventueel jouw laatste versie eens mee.

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Online JeanPierre

  • Oplosser
  • ****
  • Berichten: 800
  • Geslacht: Man
  • Je bent nooit te oud om te leren!
Re: Code Lotto
« Reactie #26 Gepost op: 09 juni 2019, 09:31:58 »
Pitufo,

De lotto cijfers ingeven dat werkt prima, maar als ik op de Lotto site naar "Details" ga en ik selecteer de drie kolommen (ik moet toch alleen maar selecteren niet?)
en klik dan op de knop "Winst invullen" dan krijg ik het schermpje zoals in bijvoegsel.

Grts,
Jean-Pierre.
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 800
PRIME Z270-P
NVIDIA GeForce GTX 1050 Ti 4095MB 1920 x 1080
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
Nr: 1 Model: Samsung SSD 850 EVO 250GB
Nr: 2 Model: WDC WD2003FZEX-00SRLA0
Nr: 3 Model: Canon TS8100 series USB Device
AV: Avast free
FW: Windows Firewal Enabled: True

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code Lotto
« Reactie #27 Gepost op: 09 juni 2019, 10:30:12 »
Daar zit het hem, JeanPierre.
Er is natuurlijk geen automatische interactie tussen jouw systeem en de website.
Dus selecteren + kopiëren is de boodschap (identiek trouwens zoals je met de getrokken nummers doet). De foutmelding komt dus doordat je 'iets' probeert te plakken terwijl het klembord leeg is.

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Online JeanPierre

  • Oplosser
  • ****
  • Berichten: 800
  • Geslacht: Man
  • Je bent nooit te oud om te leren!
Re: Code Lotto
« Reactie #28 Gepost op: 09 juni 2019, 10:50:11 »
Hi Pitufo,

Shame on me....  :-[

Nu gaat het wel, ik krijg nog wel een "waarde" melding in cel O42 en O43 maar denk wel dat ik dat zelf kan uitvogelen, ik ga dat toch proberen het is tenslotte ergens maar een cel verwijzing….  ::)

Ik dank u nogmaals en wens je nog een fijn w-end,  ;)

Grts,
Jean-Pierre.
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 800
PRIME Z270-P
NVIDIA GeForce GTX 1050 Ti 4095MB 1920 x 1080
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
Nr: 1 Model: Samsung SSD 850 EVO 250GB
Nr: 2 Model: WDC WD2003FZEX-00SRLA0
Nr: 3 Model: Canon TS8100 series USB Device
AV: Avast free
FW: Windows Firewal Enabled: True

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code Lotto
« Reactie #29 Gepost op: 09 juni 2019, 11:27:10 »
Hoi,

Eigenlijk mag het ALS-gedeelte in kolom O ook gewoon weg, het resultaat zal namelijk altijd of groter dan 1 of 0 zijn.
Maar daar ligt het natuurlijk niet aan. Die 'waarde'-melding kan er dus enkel komen als vermenigvuldigen mislukt. In I staan zeker getallen, dus in K misschien niet, en dan komen we opnieuw bij heel nauwkeurig selecteren terecht...

Ook voor jou een aangenaam weekend !
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

 


www.combell.com