VBA in Excel: Lotto Programm

Dieses Thema im Forum "Allgemeine Softwarethemen" wurde erstellt von Sykwitit, 22.05.2007.

  1. #1 Sykwitit, 22.05.2007
    Sykwitit

    Sykwitit Forum Master

    Dabei seit:
    06.02.2006
    Beiträge:
    840
    Zustimmungen:
    0
    Ort:
    Linz
    Mein Notebook:
    Acer TM432LC | Sony VAIO FE11M
    Hallo!

    Also ich muss ein Lotto Programm in VBA in Excel schreiben.

    Es muss erstmals ein Feld mit den Zahlen von 1-49 generiert werden:
    Code:
    Sub Lotto()
    Dim a As Integer, b As Integer
    Dim zahl As Integer
    
    zahl = 1
    For Z = 1 To 7
        For s = 1 To 7
            Cells(Z, s).Value = zahl
            zahl = zahl + 1
        Next
    Next
    End Sub
    
    Das funktioniert auch.

    Jetzt hab ich dann Zufallszahlen generiert
    Code:
    Sub Zufall()
    Dim zuf As Integer
    Dim Field(1 To 49) As Integer
    For i = 1 To 49
        For Z = 1 To 6
            Cells(8, Z) = Int(Rnd * 49) + 1
        Next
    Next
    
    funktioniert auch. ABER ich schreibe die Werte in die 8 Zeile rein. Aber die Aufgabe will, dass ich die generierten Werte in der Tabelle mit Rot hintersehe und dann in eine Textdatei ausgeben soll.

    Einer ne Idee wie das geht?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort ist für jeden was dabei!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 design2006, 22.05.2007
    design2006

    design2006 Ultimate Member

    Dabei seit:
    07.06.2006
    Beiträge:
    1.772
    Zustimmungen:
    0
    Ort:
    München
    Mein Notebook:
    Sony Vaio FW46M + FE21S
    Zellen einfärben kannst du beispielsweise wie folgt:

    Code:
    Range("E7").Select
    With Selection.Interior
        .ColorIndex = 3   'rot
        .Pattern = xlSolid
    End With
    Hierbei müsstest du einfach die Zellennamen (hier "E7") per Variablen-Inhalten konkatenieren.
     
  4. #3 Sykwitit, 22.05.2007
    Sykwitit

    Sykwitit Forum Master

    Dabei seit:
    06.02.2006
    Beiträge:
    840
    Zustimmungen:
    0
    Ort:
    Linz
    Mein Notebook:
    Acer TM432LC | Sony VAIO FE11M
    aha danke. und wie macht man das die Zelle mit den generierten Zahlen die er selber erkennt? mit ne if bedingung?
     
  5. #4 Sykwitit, 23.05.2007
    Sykwitit

    Sykwitit Forum Master

    Dabei seit:
    06.02.2006
    Beiträge:
    840
    Zustimmungen:
    0
    Ort:
    Linz
    Mein Notebook:
    Acer TM432LC | Sony VAIO FE11M
    Code:
    For Each zelle In Range("A1:G7")
       If (Cells = Range) Then
            
    End If
    Also ich hab mal herausgefunden, dass ich ne For each schleife brauche. Und mit der IF bedingung soll ich es vergleichen. Aber wie mach ich das genau? Hab keine Ahnung wie ich es vergleichen soll.
     
  6. #5 Realsmasher, 24.05.2007
    Realsmasher

    Realsmasher Ultimate Member

    Dabei seit:
    05.07.2005
    Beiträge:
    3.739
    Zustimmungen:
    0
    Ort:
    Deutschland
    Mein Notebook:
    Lenovo T400
    ähm, hast du nicht noch ein problem und zwar das zahlen doppelt "gezogen" werden können ?
     
  7. #6 Zerocool, 24.05.2007
    Zerocool

    Zerocool Ultimate Member

    Dabei seit:
    06.07.2006
    Beiträge:
    1.067
    Zustimmungen:
    0
    Mein Notebook:
    Vorerst keines
    Ich kenn die random Funktion von VB nicht so gut. Bei C++ z.B. wirst du bei gleicher Inizialisierung sogar immer den selben Wert bekommen. Da löst man's meist, indem man die Init Werte z.B. mit der Systemzeit verknüpft. Wie auch immer, es braucht auf jeden Fall eine Abfrage/eine Markierung der bereits gezogenen Werte.
     
  8. #7 Sykwitit, 24.05.2007
    Sykwitit

    Sykwitit Forum Master

    Dabei seit:
    06.02.2006
    Beiträge:
    840
    Zustimmungen:
    0
    Ort:
    Linz
    Mein Notebook:
    Acer TM432LC | Sony VAIO FE11M
    hast recht..der zieht die zahlen doppelt.

    mh..wo liegt den im code der fehler?
     
  9. #8 Realsmasher, 24.05.2007
    Realsmasher

    Realsmasher Ultimate Member

    Dabei seit:
    05.07.2005
    Beiträge:
    3.739
    Zustimmungen:
    0
    Ort:
    Deutschland
    Mein Notebook:
    Lenovo T400
    du lässt einfach neue zahlen ziehen, ohne zu prüfen ob diese schonmal gezogen werden.

    leider kenne ich mich mit der sprache nicht aus, deswegen kann ich nicht sagen wie du es genau umgehen kannst, aber mal so als pseudocode(vertauschen mit der gequoteten zeile) :

    Code:
     
     
    wiederhole
      Cells(8, Z) = Int(Rnd * 49) + 1
      schon_vorhanden=0
      für i=1 bis Z-1
        falls cells(8,Z)==cells(8,i) dann schon_vorhanden=1
    bis schon_vorhanden=0
     
    
     
  10. Anzeige

    Auf der Suche nach Notebook-Zubehör?
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 Sykwitit, 30.05.2007
    Sykwitit

    Sykwitit Forum Master

    Dabei seit:
    06.02.2006
    Beiträge:
    840
    Zustimmungen:
    0
    Ort:
    Linz
    Mein Notebook:
    Acer TM432LC | Sony VAIO FE11M
    Hab es jetzt so weit, dass ich KEINE gleichen Zahlen mehr generiere und die generierten Felder werden in der Tabelle markiert.

    Code:
    Sub Zufall()
        Dim zuf As Integer
        Dim Zelle As Range
        Dim z As Integer
        Dim zahlen As Variant
        Randomize (Time)
        
          zahlen = Array(1, 2, 3, 4, 5, 6)
        For i = 0 To 5
            zahlen(i) = Int(Rnd * 49) + 1
    
            For j = 0 To i - 1
                While zahlen(i) = zahlen(j)
     zahlen(i) = Int(Rnd * 49) + 1
                Wend
            Next
        Next
      
        
        Dim Field(1 To 49) As Integer
        
        Range("A1:G7").Select
        Range("G7").Activate
        With Selection.Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        
        For H = 0 To 5
            For i = 1 To 7
                For j = 1 To 7
                   If (Cells(i, j).Value = zahlen(H)) Then
                        'MsgBox zahlen(H)
                        Cells(i, j).Select
                        Cells(i, j).Interior.ColorIndex = 3
                                            
                   End If
                Next
               
            Next
        Next
    
    So jetzt brauch ich nur mehr eines:
    Die "gezogenen" Zahlen in eine txt Datei exportieren.
     
  12. #10 Sykwitit, 31.05.2007
    Sykwitit

    Sykwitit Forum Master

    Dabei seit:
    06.02.2006
    Beiträge:
    840
    Zustimmungen:
    0
    Ort:
    Linz
    Mein Notebook:
    Acer TM432LC | Sony VAIO FE11M
    Hab mal geschaut wie man die Daten ausgibt:
    Code:
    Sub TextExport()
       Dim rng As Range
       Dim iWks As Integer, iRow As Integer, iCol As Integer
       Dim sTxt As String, sPath As String
       sPath = Application.DefaultFilePath & "\"
       For iWks = 1 To Worksheets.Count
          Open sPath & Worksheets(iWks).Name & ".txt" For Output As #1
          Set rng = Worksheets(iWks).Range("A1").CurrentRegion
          For iRow = 1 To rng.Rows.Count
             For iCol = 1 To rng.Columns.Count
                sTxt = sTxt & Worksheets(iWks).Cells(iRow, iCol).Value & vbTab
             Next iCol
             Print #1, Left(sTxt, Len(sTxt) - 1)
             sTxt = ""
          Next iRow
          Close #1
       Next iWks
       MsgBox "Sie finden die Textdateien im Ordner " & Left(sPath, Len(sPath) - 1)
    End Sub
    
    Das Problem jetzt ist, dass er ALLE Daten in der Tabelle ausgibt. Also nicht die generierten Zahlen, die gewünscht sind. Wie kann man den die generierten Zahlen den in die Textdatei übergeben?
     
Thema: VBA in Excel: Lotto Programm
Besucher kamen mit folgenden Suchen
  1. lotto programm excel

    ,
  2. Excel-Lottoprogramme

    ,
  3. lottoziehung vba

    ,
  4. lotto vba excel,
  5. lotto vba,
  6. lottozahlen programm vba,
  7. vba lottozahlen,
  8. lotto excel,
  9. excel vba lottozahlen auswerten
Die Seite wird geladen...

VBA in Excel: Lotto Programm - Ähnliche Themen

  1. Notebook fürs Surfen, Emails und Word, Excel etc. gesucht

    Notebook fürs Surfen, Emails und Word, Excel etc. gesucht: Liebe Forumsgemeinde, mein Dell Computer fährt nicht mehr hoch und ich benötige relativ dringend einen Ersatz. Ich bitte um Beratung und...
  2. Excel streikt

    Excel streikt: Hallo, ich habe seit zwei Wochen Probleme mit Excel, es wandelt nicht mehr die Links um sondern stellt es nur als Text da den man nicht...
  3. [Excel]Prüfen ob Datei vorhanden ist.

    [Excel]Prüfen ob Datei vorhanden ist.: Hi! Gibts ein Add-On oder dergleichen, der mir überprüft ob eine Datei mit der größten Ziffer X schon vorhanden ist und somit in die Zelle X+1...
  4. Probleme mit Excel updates!

    Probleme mit Excel updates!: hi, Ich hab einen 1005 HA M Asus EEE, der mir seit nem halben Jahr treue Dienste leistet. Wie bei allen neuen Geräten war eine 60 tage...
  5. MS Office Professional 2003: Power Point und Excel

    MS Office Professional 2003: Power Point und Excel: Ich habe einen älteren Lenovo Laptop, auf dem noch MS Office Professional Edition 2003 läuft (eine Aufrüstung auf Windows 7 geht nicht; habe den...