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

lotto is excel

Status
Niet open voor verdere reacties.

kever101

Nieuwe gebruiker
Lid geworden
21 dec 2007
Berichten
3
lotto in excel

hallo iedereen

had vroeger een Excel bestand waarin alle mogelijke combinaties stonden van de lotto
123456,
123457 enz.
nu ben ik deze kwijtgespeeld (hdcrash):mad: en kan deze nergens terugvinden op het web.:confused:
dus wou langs deze weg proberen het bestand(en) terug te krijgen.:rolleyes:

alvast bedankt.:o

m.v.g. Kevin
 
Laatst bewerkt:

hallo

deze was ik al tegen gekomen in de zoek functie maar dit is eigenlijk niet wat ik zocht :o
ik zoek gewoon een Excel bestand (waren bestanden eigenlijk) waarin gewoon alle mogelijke combinaties staan van de lotto:rolleyes::rolleyes:
heb deze ooit gehad maar zijn dus verloren gegaan maar zou het graag terug hebben.

of is het miss mogelijk om Excel dit zelf te laten uitrekenen en zelf dan mooi onder elkaar te laten zetten.

m.v.g. Kevin
 
Even een vraagje van mijn kant, ik ben namelijk bezig met een bestand voor je maar vroeg me af in welke range ik de getallen van de lotto zetten. Lopen de getallen van 000000 tot 999999 of van bijv 100000 tot 999999?

Kun je dit aangeven zodat ik hier rekening mee kan houden?
 
Hieronder vind je de code voor getallen van 100000 - 999999. Ze worden in Excel in kolommen van elk 50000 getallen geplaatst. A staat voor het 1e cijfer, B voor het 2e, enz.
Als je het Excel-bestand gaat aanmaken, moet je niet schrikken als hij een poos bezig is. Het zijn gewoon erg veel getallen die in een celletje gezet moeten worden en hij duurt al minder land door de screenupdating op false te zetten. Anders zie je elk getal apart in je scherm verschijnen, nu alles in één keer als hij helemaal klaar is.
Code:
Sub Lotto()
    Dim A, B, C, D, E, F As Integer
    Dim X, Y As Integer
    Dim waarde As String
    
    Application.ScreenUpdating = False
    X = 1
    Y = 1
    For A = 1 To 9
        For B = 0 To 9
            For C = 0 To 9
                For D = 0 To 9
                    For E = 0 To 9
                        For F = 0 To 9
                            If X > 50000 Then
                                Y = Y + 1
                                X = 1
                            End If
                            
                            waarde = Str(A) + Str(B) + Str(C) + Str(D) + Str(E) + Str(F)
                            Cells(X, Y).Select
                            
                            Selection.Value = waarde
                            X = X + 1
                        Next F
                    Next E
                Next D
            Next C
        Next B
    Next A
    
    Application.ScreenUpdating = True
End Sub
 
Kever101, Kijk maar 'ns in dit forum daar zijn de helpers bezig geweest met een oplossing in Excel en Access (wegschrijven naar een tekstbestand trouwens!).

Groet, Leo
 
Even een vraagje van mijn kant, ik ben namelijk bezig met een bestand voor je maar vroeg me af in welke range ik de getallen van de lotto zetten. Lopen de getallen van 000000 tot 999999 of van bijv 100000 tot 999999?

Kun je dit aangeven zodat ik hier rekening mee kan houden?

hallo

allereerst bedankt voor jou tijd:thumb:
het gaat gewoon om de 6 getallen, dus zonder het rezerve getal
dus van
1 2 3 4 5 6
1 2 3 4 5 7,enz
tot
37 38 39 40 41 42

hopelijk kun je er aan uit.:rolleyes:

alvast bedankt

m.v.g. kevin
 
Laatst bewerkt:
Hier heb je de aangepaste code, maar wil je deze draaien in Excel ben je echt wel een behoorlijke tijd bezig hoor. Het zijn echt heel veel getallen! Owja, het staat allemaal misschien niet helemaal netjes en volgens de regels, maar zo past het nog een beetje op het scherm ;)
Code:
Sub Lotto()
    Dim A, B, C, D, E, F As Integer
    Dim X, Y As Integer
    Dim waarde As String
    
    Application.ScreenUpdating = False
    X = 1
    Y = 1
    For A = 1 To 42
        For B = 1 To 42
            If B <> A Then
            For C = 1 To 42
                If C <> A And C <> B Then
                For D = 1 To 42
                    If D <> A And D <> B And D <> C Then
                    For E = 1 To 42
                        If E <> A And E <> B And E <> C And E <> D Then
                        For F = 1 To 42
                            If F <> A And F <> B And F <> C And F <> D And F <> E Then
                            If X > 50000 Then
                                Y = Y + 1
                                X = 1
                            End If
                            
                            waarde = Str(A) + " " + Str(B) + " " + Str(C) + " " + Str(D) + " " _
                            + Str(E) + " " + Str(F)
                            Cells(X, Y).Select
                            
                            Selection.Value = waarde
                            X = X + 1
                            End If
                        Next F
                        End If
                    Next E
                    End If
                Next D
                End If
            Next C
        End If
        Next B
    Next A
    
    Application.ScreenUpdating = True
End Sub
 
Vinnie82, Hetgeen jij nu gemaakt hebt, geeft niet het aantal combinaties maar het aantal permutaties. Een combinatie is (in dit geval) een unieke getallenreeks in oplopende volgorde. Een permutatie is een getallenreeks in elke willekeurige volgorde. Dus als je de tabel begint met 1, 2, 3, 4, 5, 6 ben je voor wat betreft de combinaties klaar met deze getallenreeks. Bij permutatie ga je dit ook weer husselen. Dus 2, 1, 3, 4, 5, 6 is dan ook geldig.
Jouw code laat dus alle permutaties zien van de getallen van 1 t/m 42 met een stringlengte van 6.
Probeer de functies Combin (Combinaties) en Permut (Permutaties) maar eens. Dan zie je dat er bij 42 getallen en een lengte van 6 bij combinaties 5.245.786 mogelijkheden zijn en met dezelfde criteria bij permutaties 3.776.965.920 mogelijkheden.

Ik heb je code 2 kolommen laten draaien en haalde er als voorbeeld deze string uit: 1 2 3 39 26 4 (cel B25). Dezelfde getallen kom je ook tegen in cel A811 (dan als: 1 2 3 4 26 39). De 2e uit cel B25 is dus overbodig voor deze toepassing (Lotto).

Let ook op het declareren van je variabelen. Dim A, B, C as Integer is iets anders als Dim A as integer, B as integer, C as integer. In het 1e voorbeeld worden de variabelen A en B gedeclareerd als Variant. Ook je variabele 'x' die staat voor het rijnummer, moet je anders declareren. Een integer kan namelijk niet groter worden dan 32.767 en bij jou moet íe groeien tot 50.000. Declareer een rijnummer dus altijd als Long.

Hou me ten goede. Dit meld ik absoluut niet om je code af te kraken (mocht je dat gevoel misschien krijgen na het lezen van bovenstaand stuk...:o), maar puur als 'ik denk met je mee'!

Groet, Leo

P.s. Kijk toch echt ff naar die linkjes die ik in een eerder antwoord had gegeven. Is héél leerzaam om te zien wat anderen al hebben uitgevogeld. :thumb:
 
Beste kever101 ;)

Ik heb deze onlangs nog aangevraagd op een ander forum.

Kijk eens naar de volgernde Site.

http://www.oplossing.be/index.php/topic,30468.0.html

Zie hier anders de oplossing

Code:
Option Explicit
Private Sub Cmd1_Click()
'Code geschreven door Diezel
'Versie 13/11/2007

Dim bal(6) As Byte
Dim Teller As Double
Dim j As Byte
Dim Lottocombinatie As String
Dim Antwoord As String
Dim IntTeller As Integer

Teller = 0
bal(1) = 1


IntTeller = 1

For j = 6 To 42

IntTeller = j + 1

bal(6) = IntTeller

If IntTeller = 43 Then
j = 0
bal(5) = bal(5) + 1
End If


If bal(5) > 41 Then
bal(4) = bal(4) + 1
bal(5) = bal(4)
End If

If bal(4) > 40 Then
bal(3) = bal(3) + 1
bal(4) = bal(3)
End If

If bal(3) > 39 Then
bal(2) = bal(2) + 1
bal(3) = bal(2)
End If

If bal(2) = 38Then
bal(1) = bal(1) + 1
bal(2) = bal(1)

End If

If bal(1) > 37 Then GoTo einde

'clean en sweep hen eruit
If IntTeller = 43 Then GoTo Verder
If bal(6) <= bal(5) Then GoTo Verder
If bal(5) <= bal(4) Then GoTo Verder
If bal(4) <= bal(3) Then GoTo Verder
If bal(3) <= bal(2) Then GoTo Verder
If bal(2) <= bal(1) Then GoTo Verder



On Error Resume Next
     Open "C:\WINDOWS\Desktop\Lotto1.txt" For Output As #1 'Open file for output.
Lottocombinatie = bal(1) & ";" & bal(2) & ";" & bal(3) & ";" & bal(4) & ";" & bal(5) & ";" & bal(6)
Print #1, Lottocombinatie
Teller = Teller + 1

Verder:

 Next j


einde:
Close #1
 
 
Antwoord = "De tekstfile is ok"


 Antwoord = Teller

 
MsgBox "De lottolijst met combinaties" & vbCrLf _
       & Space(1) & "is weggeschreven", vbInformation + 0, "Lottocombinaties"
    Exit Sub

Zorg dat er een tekstbestand op je bureaublad staat.

Groetjes Danny.:thumb:
 
Laatst bewerkt door een moderator:
Danny147, Dat is precies waar ik op doelde in mijn eerdere post... Maar zo kan het ook! :D:thumb:

Groet, Leo (A.K.A 'RedHead')
 
Ah, oplossing.be. Op een blauwe maandag heb ik daar ook nog gepost :eek:

Danny, gelieve code tags rond de code te zetten aub. Dank.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan