Help!

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

Hulp bij posten

Recente topics

Auteur Topic: Scrabble-tester  (gelezen 11612 keer)

0 leden en 1 gast bekijken dit topic.

Online RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Scrabble-tester
« Reactie #15 Gepost op: 21 maart 2007, 00:01:59 »
Erik, LucB, Ik ben bang dat mijn sheet toch met de beste tijd gaat komen... Het uitzoeken duurde 2 minuten en 19 seconden.  ;D ;D

Ik heb de code van Myrna Larson een ietsje aangepast zodat er niet iedere keer een nieuwe sheet aangemaakt wordt, maar gewoon de oude 'geleegd' en vervolgens met de nieuwe data gevuld. Daarna wordt er een subje van mij aangeroepen die voor het testen op 'CheckSpelling' zorgt.
Op een ietwat knipperende muis na, ben ik niet ontevreden... 8)

Sub TestWord()
Dim Woord As String, Combinatie As String, TestWord As String
Dim iAantalWoorden As Integer, i As Integer, y As Integer
Dim StartTijd As Double
StartTijd = Time
y = 1

    iAantalWoorden = Range("A1:" & Range("A1").End(xlDown).Address).Count
    MsgBox "Aantal woorden: " & iAantalWoorden & "; Starttijd: " & Format(StartTijd, "hh:mm:ss"), _
            vbOKOnly + vbInformation, "Start zoeken..."

    With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
    End With

    For i = 1 To iAantalWoorden
        Combinatie = Cells(i, 1).Value
   
        Woord = Replace(Combinatie, ", ", "")
        If Application.CheckSpelling(Woord) = True Then
            Cells(y, 2).Value = Woord
            y = y + 1
        End If
       
        Application.StatusBar = "Aantal gevonden woorden... " & y - 1 & "   (huidige regel: " & i & ")"
     Next i

    With Application
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
        .StatusBar = False
    End With

    Cells(1, 3).Value = Format(Time - StartTijd, "hh:mm:ss")

End Sub
voor de aardigheid hou ik in de statusbar nog bij hoeveel 'goede' woorden er gevonden zijn en op welke regel de 'For Next' zit. In kolom B wordt dan het resultaat afgedrukt en in cel C1 komt de tijdsduur.

Ik hoop dat jullie het óók iets vinden... (zie ook bijlage)

Groet, Leo
______________________________

Groet, Leo

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Scrabble-tester
« Reactie #16 Gepost op: 21 maart 2007, 00:22:56 »
Bij mij duurde het 4 minuten en 40 seconden.
wat is "het" ?

veel hangt af van de machine en wat er allemaal aan het draaien is ... hoe lang ze al aanstaat ...

Het heeft dus geen zin om verschillende code te vergelijken op verschillende PC's. Je kan ofwel dezelfde code testen om een idee te hebben van snelheidsverschil tussen PC's, ofwel de verschillende codes testen op 1 computer.

In principe is het testen van de inhoud van een cel trager dan het testen van een variabele binnen VBA: het zou me dus sterk verwonderen dat het sneller loopt, tenzij ik iets anders over het hoofd heb gezien. Ik blijf dus tot nader order pleiten voor de methode: "enkel schrijven als de spelling OK is".

Ter info: op mijn machine loopt Leo's code ongeveer 25 minuten. (mijn machine stond ondertussen wel wat langer aan)

beste groeten
Erik

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Scrabble-tester
« Reactie #17 Gepost op: 21 maart 2007, 00:28:04 »
voorlopig moet ik mijn bewering over de snelheid herroepen: it zie nauwelijks verschil
Sub test()
Dim starttime As Double
Dim i As Long

starttime = Timer

Const Woord = "voetpad"
    For i = 1 To 50
    Application.CheckSpelling (Range("A1"))
    'Application.CheckSpelling (Woord)
    Next i

MsgBox Timer - starttime

End Sub
maar misschien moeten mijn machine en ik maar eens wat rusten  :-[

Online RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Scrabble-tester
« Reactie #18 Gepost op: 21 maart 2007, 00:31:24 »
Lijkt me een goed idee... Ga ik ook maar 'ns doen...
______________________________

Groet, Leo

Offline LucB

  • Lid
  • *
  • Berichten: 55
  • Groeten Luc
Re: Scrabble-tester
« Reactie #19 Gepost op: 21 maart 2007, 10:12:18 »
Hallo Leo en Erik,

Leo ik heb jouw code getest en kom hier ook op 4 minuten en 40 seconden.

Ik dank jullie beiden voor de verschillende benaderingen en voor de tijd die jullie er in hebben gestoken.

Mijn voorlopige conclusie is,dat CheckSpelling zich niet in de Turbo-stand laat zetten.

Nogmaals dank en tot een volgende keer.
Windows XP Prof SP2, AMD DualCore 4400, 1024 MB RAM, NTFS, Norton AntiVirus, Internet Explorer 7.0, Outlook Express 6

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Scrabble-tester
« Reactie #20 Gepost op: 21 maart 2007, 10:31:59 »
Het ziet er naar uit dat mijn machientje dan veel trager is...

Luc,
Ik zie dat je deze thread wil afsluiten: je hebt volgens mij de juiste conclusie getrokken. Bovendien is een woord van x aantal letters dat gevormd kan worden nog niet eens zeker te plaatsen op het bord.
't Was in elk geval fijn om er eens mee bezig te zijn :-)

Dit is interessant, maar niet Excel:
https://www.nongnu.org/eliot/
zie vooral de link naar "The World's Fastest Scrabble Program".

groetjes,
Erik

Online RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Scrabble-tester
« Reactie #21 Gepost op: 21 maart 2007, 11:31:48 »
Lucb, ook namens mij bedankt voor dit leuke 'probleem'. Ik ben er weer een stuk wijzer door geworden. ;)

Op naar de 'volgende' leuke... ;D

Groet, Leo
______________________________

Groet, Leo

Offline LucB

  • Lid
  • *
  • Berichten: 55
  • Groeten Luc
Re: Scrabble-tester
« Reactie #22 Gepost op: 21 maart 2007, 14:05:10 »
Hallo Leo,

Nog even iets rechtzetten.

Zet in je code de regel: "Starttijd = Time" onder de MsgBox.

De echte looptijd is dan juister.

Je bent dan tevens de WINNAAR.

VanHarte.


ps.  Hoe zet ik dit draadje op opgelost?


Groet,
Luc
Windows XP Prof SP2, AMD DualCore 4400, 1024 MB RAM, NTFS, Norton AntiVirus, Internet Explorer 7.0, Outlook Express 6

Online RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Scrabble-tester
« Reactie #23 Gepost op: 21 maart 2007, 14:38:16 »
Luc,
Citaat
Zet in je code de regel: "Starttijd = Time" onder de MsgBox
...je hebt gelijk! Dank. ;)

Maareh... voor wat betreft...
Citaat
Je bent dan tevens de WINNAAR
Ik vind hierbij dat we alle drie de 'winnaar' zijn. Dit is (vind ik) op een typische 'Oplossing.BE' manier (dus profesioneel en héél gezellig) behandeld... ;)

En als laatste....
Citaat
Hoe zet ik dit draadje op opgelost?
Da's sinds een paar weken (sinds het schitterende vernieuwde forum) ff niet mogelijk. De ontwikkelaars hebben toegezegd dit zo snel als het kan in orde te maken. 8)

Groet, Leo
______________________________

Groet, Leo

 


www.combell.com