276 Aufrufe
Gefragt in Tabellenkalkulation von piedro Einsteiger_in (63 Punkte)

Hallo zusammen,

habe eine Frage an das Forum und zwar: ich habe in Google ein

Makro gefunden für Lottozahlen generieren, das auch funktioniert, es

schreibt die Zahlen in die Spalte A   von   A1 bis  A6.

Mein  Wunsch wäre, wie ändert man das Makro damit die Zahlen

eingetragen werden in Zeile 1  von  A1 bis F1  und zusätzlich das

man den Bereich im Makro auswählen kann z.B. ("A1:F1")  für Zeile

oder ("A1:A6") für Spalte.

Hier im Anschluss das Makro:

Option Explicit

Sub makro01()

Randomize Timer

ReDim lottozahl(49)

Dim zahl(6), endeindex, allezahlen, ziehung

Dim gezogen

endeindex = 49

For allezahlen = 1 To 49

lottozahl(allezahlen) = allezahlen

Next allezahlen

For ziehung = 1 To 6

gezogen = Int(Rnd * endeindex) + 1

zahl(ziehung) = lottozahl(gezogen)

lottozahl(gezogen) = lottozahl(endeindex)

endeindex = endeindex - 1

ReDim Preserve lottozahl(endeindex)

Range("A" & ziehung) = zahl(ziehung)

Next ziehung

End Sub

Für eure Hilfe wäre ich sehr dankbar

mfg  Peter

4 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
Bearbeitet von nighty

Hallo Peter

Ausgabe A1 bis F1

Ansonsten für andere Bereiche schau dir die Zeile näher an

 Cells(1, ziehung) = zahl(ziehung)

Gruß Nighty

Sub LottoZahlen()
Randomize Timer
ReDim lottozahl(1 To 49) As Integer
Dim zahl As Integer, allezahlen As Integer, ziehung As Integer, gezogen As Integer
For allezahlen = 1 To 49
 lottozahl(allezahlen) = allezahlen
Next allezahlen
For ziehung = 1 To 6
 gezogen = Int(Rnd * UBound(lottozahl)) + 1
 zahl = lottozahl(gezogen)
 lottozahl(gezogen) = lottozahl(UBound(lottozahl))
 ReDim Preserve lottozahl(1 To UBound(lottozahl) - 1)
 Cells(1, ziehung) = zahl
Next ziehung
End Sub

0 Punkte
Beantwortet von
Hallo Nighty,

Danke das es so schnell geklappt hat, habe es aber

noch nicht ausprobiert, habe aber noch eine Frage.

was muss ich ändern und wie ! wenn ich möchte das

die Zahlen ausgegeben werden  von z.B. ("C1:H1")

oder ("G12:L12") also mitten irgendwo in der Tabelle

und nicht immer angefangen von A1 beginnend ?

Wäre schön wenn das auch vielleicht machbar wär

vielen Dank

Gruß Peter
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
Hallo Peter

1 Beispiel

C1 bis H1

Cells(1, 2 + ziehung) = zahl

Zeile und Spalte wird als Index angegeben

Zeile 1

Spalte 3

Da die Schleife beginnend mit 1 zu dem Spaltenindex addiert wird müssen wir 1 abziehen ,also 2

2 Beispiel

G12 bis L12

Cells(12, 6 + ziehung) = zahl

Zeile und Spalte wird als Index angegeben

Zeile 12

Spalte 7

Da die Schleife beginnend mit 1 zu dem Spaltenindex addiert wird müssen wir 1 abziehen ,also 6

Gruß Nighty
0 Punkte
Beantwortet von
Hallo Nighty,

es funktioniert wunderbar,

vielen vielen Dank und ein schönes Wochenende

Gruß Peter
...