Help!

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

Hulp bij posten

Recente topics

Auteur Topic: Lotto Controle vernieuwde website  (gelezen 5564 keer)

0 leden en 1 gast bekijken dit topic.

Offline snb

  • Lid
  • *
  • Berichten: 30
Re: Lotto Controle vernieuwde website
« Reactie #30 Gepost op: 06 april 2023, 23:50:12 »
Veel eenvoudiger kunnen we het niet maken:

Sub M_snb()
    sn = Split(Split(CreateObject("scripting.filesystemobject").opentextfile("G:\OF\lotto.htm").readall, "De Nationale Loterij van Belgi")(0), " Uitslag trekking ")
    c00 = Replace(Replace(Replace(Replace(Replace(Join(Filter(Split(Replace(Replace(sn(1), "<", "<~"), ">", "~<"), "<"), "~", 0), ""), "&#8211;", "_"), "â", ""), "Â", ""), "¬", ""), Chr(160), "")
    sn = Split(Replace(Replace(Split(c00, "Lijst")(0), vbLf & vbLf, vbLf), vbLf & " ", vbLf), vbLf)
   
    Blad2.Cells(5, 4).Resize(, 8) = Split(Replace(sn(1), "+", " _  _ "), " _ ")
    sn = Filter(Split(Join(Array(sn(4), sn(5), sn(6), sn(7), sn(8), sn(9), sn(10), sn(11), sn(12)), Chr(130)), Chr(130)), ",")
    Blad2.Cells(8, 20).Offset(8 - UBound(sn)).Resize(UBound(sn) + 1) = Application.Transpose(sn)
End Sub

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
Re: Lotto Controle vernieuwde website
« Reactie #31 Gepost op: 07 april 2023, 08:39:18 »
@Molly , bedankt voor de aanpassingen ! ik denk niet dat het nu nog eenvoudiger kan én als er in de toekomst iets veranderd aan de website dan ik dat makkelijk aanpassen !

@snb : bedankt voor je inbreng , alleen :
1) in het begin zijn we gestart met een topic daarover dat Jean-Pierre opgestart heeft : https://www.oplossing.be/excel/code-lotto/ , dit met het kopiëren van gegevens op de Lotto website...
al vlug kwam er bij mij de bedenking of dit niet "geautomatiseerd" kon worden , met als gevolg dat JEC en MOLLY de code daarvoor hebben uitgewerkt.

2) toen de Lotto website veranderd werd klopte de "webscraping" dus weer niet meer en werd er uitgeweken naar de website van "geschenken" (https://www.geschenkwensen.be/lotto-uitslagen/) , JEC en MOLLY hebben daar dan weer hun tanden ingezet met een werkende code als gevolg.
zondag wilde ik mijn lotto controleren en het werkte wéér niet meer , daarom het opstarten van dit topic , omdat webscraping onbetrouwbaar is wil ik weer uitwijken naar de methode van Jean-Pierre via "kopiëren" , maar dan wel via de website van "geschenken"......

3) Mijn kennis is absoluut ontoereikend om aan het werk te gaan met Uw code ! dit betekent dan ook mocht er in de toekomst iets aan de website(s) veranderen en de "webscraping" weer niet meer klopt , Uw code ook niet meer klopt en ik terug moet aanspraak maken op de hulp hier op het forum.
om dit naar de toekomst te vermijden ga ik dus gebruik maken van het kopiëren van de lotto gegevens mét de huidige code , code die ik begrijp én zelf kan aanpassen !

Mvg,
Arnold.

Offline snb

  • Lid
  • *
  • Berichten: 30
Re: Lotto Controle vernieuwde website
« Reactie #32 Gepost op: 07 april 2023, 10:30:32 »
Heb niet de illusie dat een website niet verandert.
Koester evenmin de illusie dat met bestaande code dat eenvoudig te verhelpen is.
Het gaat er dus om dat je de code analyseert en doorgrondt, zodat ook de responsetext van een gewijzigde website eenvoudig bewerkt kan worden.

De tot nog toe gebruikte code bleek niet zo simpel dat ie zonder hulp van dit forum aangepast kon worden.

Daarin onderscheidt die code zich dan wellicht niet van de mijne.

Veel gemakkelijker dan een geopende webpagina opslaan als .htm bestand bestaat niet.
Daarop is beveiliging tegen geautomatiserd webgegevens binnenhalen niet gericht.

Als je goed kijkt beschouwt mijn code de website als 1 grote tekstreeks.
De code gebruikt dan ook alleen maar heel eenvoudige, basale VBA tekstbewerkingsmethoden.
En 7 regels code lezen lijkt me niet zo'n klus als je jezelf de tijd gunt.
De code maakt ook geen gebruik van externe VBA bibliotheken.

Mocht het te complex voorkomen dan zijn er wellicht anderen in dit forum die er wel mee gediend zijn of als inspiratie voor eigen code willen gebruiken.

In tegenstelling tot wat ik meldde in mijn vorige bericht kan de code eenvoudiger:

Sub M_snb()
    Open "G:\OF\lotto.htm" For Input As #1
       sn = Split(Split(Input(LOF(1), #1), "De Nationale Loterij van Belgi")(0), " Uitslag trekking ")
    Close #1
   
    sp = Split(Replace(Replace(Replace(Join(Filter(Split(Replace(Replace(sn(1), "<", "<~"), ">", "~<"), "<"), "~", 0), ""), "&#8211;", "_"), "Â" & Chr(160), ""), " + ", " _  _ "), vbLf)
    Blad2.Cells(5, 4).Resize(, 8) = Split(sp(2), " _ ")
   
    sn = Filter(Split(Join(Array(sp(6), sp(7), sp(8), sp(9), sp(10), sp(11), sp(12), sp(13), sp(14)), "¬"), "¬"), ",")
    Blad2.Cells(8, 20).Offset(8 - UBound(sn)).Resize(UBound(sn) + 1) = Application.Transpose(sn)
End Sub




Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
Re: Lotto Controle vernieuwde website
« Reactie #33 Gepost op: 07 april 2023, 10:48:09 »
Dag SNB,
zoals ik al aangaf , Uw code is jammer genoeg voor mij ( ik ben er 70 en nog "old skool" wat vba betreft ) absoluut niet begrijpelijk , sry....
wat ik heb gedaan om het voor MIJ wél begrijpelijk te houden én ook aanpasbaar als de website veranderd is volgende :
1) ik kopieer de nodige gegevens van de website  (zie afbeelding "website gekopieerd") en plaatst die ergens op mijn Excel blad , dat gebeurd automatisch na het klikken op de button "controle" via "paste" (zie afbeelding "lotto gekopieerd").
nu kan ik makkelijk de nodige gegevens daar uit halen om de controle uit te voeren...
hopelijk kan je hiervoor begrip opbrengen ?
Mvg,
Arnold.


Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
Re: Lotto Controle vernieuwde website
« Reactie #34 Gepost op: 07 april 2023, 11:48:16 »
De code gebruikt dan ook alleen maar heel eenvoudige, basale VBA tekstbewerkingsmethoden.
ben dan toch benieuwd hoeveel van onze "leden" hier op Oplossing.be volgende code "begrijpen" :
sp = Split(Replace(Replace(Replace(Join(Filter(Split(Replace(Replace(sn(1), "<", "<~"), ">", "~<"), "<"), "~", 0), ""), "&#8211;", "_"), "Â" & Chr(160), ""), " + ", " _  _ "), vbLf)
?
Mvg,
Arnold.

Offline snb

  • Lid
  • *
  • Berichten: 30
Re: Lotto Controle vernieuwde website
« Reactie #35 Gepost op: 07 april 2023, 15:12:45 »
ancient skool VBA (ook voor 80+  -ers)
Het gebruik van replace, split, join en filter.

c00=Replace(sn(1), "<", "<~")
      Msgbox c00
c00=replace(c00, ">", "~<")
      Msgbox c00
sn=split(c00,"<")
     Msgbox join(sn)
sn=filter(sn,"~",0)
     Msgbox join(sn)
c00=join(sn,"")
    Msgbox c00
c00=replace(c00,"&#8211;", "_")
    Msgbox c00
c00=replace(c00,"Â" & Chr(160), "")
    Msgbox c00
c00=  replace(c00, " + ", " _  _ ")
    Msgbox c00
sp=split(c00,vblf)

is hetzelfde als de eenregelige:

sp = Split(Replace(Replace(Replace(Join(Filter(Split(Replace(Replace(sn(1), "<", "<~"), ">", "~<"), "<"), "~", 0), ""), "&#8211;", "_"), "Â" & Chr(160), ""), " + ", " _  _ "), vbLf)
Gebruik F8 in de VBEditor en je ziet alle stappen.
Desnoods gebruik je Debug.Print en het 'Immediate Window'.

Offline snb

  • Lid
  • *
  • Berichten: 30
Re: Lotto Controle vernieuwde website
« Reactie #36 Gepost op: 08 april 2023, 13:41:14 »
Maar als je van kopiëren en plakken houdt, kun je natuurlijk ook gewoon formules gebruiken:


Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
Re: Lotto Controle vernieuwde website
« Reactie #37 Gepost op: 23 april 2023, 18:15:53 »
vraagje want ik geraak er weeral niet uit  :-[ , in volgende code : Range("D20:I21").Value = Sheets("Afdrukken").Range("B18:G19").Value zou de waarde 20 van "D20" moeten vervangen worden door de variabele "hoeveel" , hoe doe ik dat ?
dus zou moeten worden Range("Dhoeveel:I21").Value = Sheets("Afdrukken").Range("B18:G19").Value
Mvg,
Arnold.

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: Lotto Controle vernieuwde website
« Reactie #38 Gepost op: 23 april 2023, 18:31:29 »
Hallo Arnold,

Ik zou daar meteen kunnen op antwoorden:
Range("D" & hoeveel & ":I21")maar kom je dan niet in de knoei met I21? Want dan is er een grote kans dat de range groter of kleiner wordt dan die op 'Afdrukken'(?)
Dus gokgewijs zou ik dan denken dat de 21 ook moet gewijzigd worden, best mogelijk naar 'hoeveel + 1'.

Laat maar weten als ik dus nog niet helemaal mee ben ;)

Mvg,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
Re: Lotto Controle vernieuwde website
« Reactie #39 Gepost op: 23 april 2023, 18:47:14 »
Dag Molly , je hebt idd gelijk , ik kom dan in de knoei  :-[ , die 21 moet ook vertaald worden naar hoeveel + 1...
wil jij dit voor mij doen ? heb het zelf geprobeerd maar draait in de soep....
ik had geschreven Range("D" & hoeveel & ":"I" & hoeveel +1 &) maar dat werkt dus niet  :(
Mvg,
Arnold.

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: Lotto Controle vernieuwde website
« Reactie #40 Gepost op: 23 april 2023, 19:05:12 »
Toch bijna goed, hoor.
Die '&' is eigenlijk gewoon een 'en' (let op het verschil met 'plus'), dus "A" & "B" = "AB"
De juiste schrijfwijze wordt daarom
Range("D" & hoeveel & ":I" & hoeveel +1)
Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
Re: Lotto Controle vernieuwde website
« Reactie #41 Gepost op: 23 april 2023, 19:11:52 »
Dankuwel Molly ! werkt perfect  :)
Nog een fijne avond  ;)
Mvg,
Arnold.

 


www.combell.com