frage: wie kann ich ein "zahlenfeld" - z.bsp. 6 zeilen und 10 spalten mit zahlen von 1 bis 60 füllen, ohne dass eine zahl mehrfach vorkommt? mit funktion "zufallszahl()*60" kommen zahlen tlw doppelt vor...
danke für eure lösungen!! :o)
Sub makro01()
Randomize Timer
ReDim zuzahl(60) As Integer
Dim zahl(60) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim allezahlen1 As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zeile As Long
Dim spalte As Integer
endeindex = 60
For allezahlen = 1 To 60
zuzahl(allezahlen) = allezahlen
Next allezahlen
zeile = zeile + 1
spalte = spalte + 1
For ziehung = 1 To 60
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
If spalte = 7 Then
spalte = 1
zeile = zeile + 1
End If
Cells(zeile, spalte) = zahl(ziehung)
spalte = spalte + 1
Next ziehung
End Sub
Sub makro02()
Sheets(1).Range("A1:F71").Clear
Randomize Timer
ReDim zuzahl(60) As Integer
Dim zahl(60) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim allezahlen1 As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zeile As Long
Dim spalte As Integer
endeindex = 60
For allezahlen = 1 To 60
zuzahl(allezahlen) = allezahlen
Next allezahlen
zeile = zeile + 1
spalte = spalte + 1
For ziehung = 1 To 60
zeile1 = zeile1 + 1
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
If spalte = 7 Then
spalte = 1
zeile = zeile + 1
End If
Cells(zeile, spalte) = zahl(ziehung)
Cells(zeile1 + 11, 1) = zahl(ziehung)
Cells(zeile1 + 11, 2) = Chr$(64 + spalte) & zeile
spalte = spalte + 1
Next ziehung
Range("A12:B71").Sort Key1:=Range("A12"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveWindow.SmallScroll Down:=3
End Sub
Sub makro01()
Randomize Timer
ReDim zuzahl(60) As Integer
Dim zahl(60) As Variant
Dim addy(60) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim allezahlen1 As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zeile As Long
Dim spalte As Integer
Dim i As Integer
endeindex = 60
For allezahlen = 1 To 60
zuzahl(allezahlen) = allezahlen
Next allezahlen
zeile = zeile + 1
spalte = spalte + 1
For ziehung = 1 To 60
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
If spalte = 7 Then
spalte = 1
zeile = zeile + 1
End If
Cells(zeile, spalte) = zahl(ziehung)
addy(zahl(ziehung)) = Cells(zeile, spalte).Address
spalte = spalte + 1
Next ziehung
For i = 1 To 60
Cells(11 + i, 1) = i & " " & addy(i)
Next
End Sub
Sub makro01()
Randomize Timer
ReDim zuzahl(60) As Integer
Dim zahl(60) As Variant
Dim addy(60) As Variant
Dim endeindex As Integer
Dim allezahlen As Integer
Dim allezahlen1 As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim zeile As Long
Dim spalte As Integer
Dim i As Integer
endeindex = 60
For allezahlen = 1 To 60
zuzahl(allezahlen) = allezahlen
Next allezahlen
zeile = zeile + 1
spalte = spalte + 1
For ziehung = 1 To 60
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
If spalte = 7 Then
spalte = 1
zeile = zeile + 1
End If
Cells(zeile, spalte) = zahl(ziehung)
addy(zahl(ziehung)) = Cells(zeile, spalte).Address(RowAbsolute:=False, ColumnAbsolute:=False)
spalte = spalte + 1
Next ziehung
For i = 1 To 60
Cells(11 + i, 1) = i & " " & addy(i)
Next
End Sub