Hallo Forum,
nach langer Zeit beschäftige ich mich mal wieder mit VBA und wollte ein kleines Lottoprogramm,
welches eine Lottozahl erstellt und diese dann per Timer so lang wieder erstellt bis die erste Zahl erreicht wurde;
das kann einige Millionen Versuche dauern - VBA hat ja keinen Timer, deswegen wollte ich erstmal eine Reihe ziehen.
mein Delphi Code:
mein VBA Code bisher:
Erstmal stand ich vor dem Problem, das eine Variable nicht öfters in Schleifen verwendet werden kann.
Das hab ich so gelöst in dem ich einfach mehrere Schleifenvariablen nutze.
Weiterhin bin ich mir nicht sicher, ob die Bedingung: While intNum(z) = 0 richtig ist, das ein "=" in VBA doch eine Zuweisung ist?
Wenn ihr mir helfen könnt wäre ich euch sehr dankbar.
nach langer Zeit beschäftige ich mich mal wieder mit VBA und wollte ein kleines Lottoprogramm,
welches eine Lottozahl erstellt und diese dann per Timer so lang wieder erstellt bis die erste Zahl erreicht wurde;
das kann einige Millionen Versuche dauern - VBA hat ja keinen Timer, deswegen wollte ich erstmal eine Reihe ziehen.
mein Delphi Code:
Visual Basic-Quellcode
- var
- Form1 :TForm1;
- num :array[1..49] of byte;
- zahlen :array[1..6] of byte;
- ziehung :array[1..6] of byte;
- range :byte = 49;
- tries :integer;
- implementation
- {$R *.dfm}
- procedure TForm1.FormCreate(Sender: TObject);
- var i,z:byte;
- begin
- tries := 0;
- randomize();
- for i := 1 to 49 do num[i] := i;
- for i := 1 to 6 do
- begin
- z := random(range) + 1;
- while num[z] = 0 do z := random(range) + 1;
- num[z] := 0;
- ziehung[i] := z;
- end;
- edit1.text := '';
- for i := 1 to 6 do edit1.text := edit1.text + inttostr(ziehung[i]) + ', ';
- end;
mein VBA Code bisher:
Visual Basic-Quellcode
- Option Explicit
- Dim intNum(49) As Integer
- Dim intZahlen(6) As Integer
- Dim intZiehung(6) As Integer
- Dim bytRange As Byte
- Private Sub btnZiehung_Click()
- Dim i, i2, i3, z As Byte
- Randomize
- For i = 1 To 49
- intNum(i) = i
- Next i
- For i2 = 1 To 6
- z = Rnd(49) + 1
- While intNum(z) = 0
- z = Rnd(49) + 1
- intNum(z) = 0
- intZiehung(i) = z
- Wend
- Next i2
- edit1.Text = ""
- For i3 = 1 To 6
- edit1.Text = edit1.Text + Str(intZiehung(i3)) + ", "
- 'raus kommt hier nur 0, 0, 0, 0, 0, 0
- Next i3
Erstmal stand ich vor dem Problem, das eine Variable nicht öfters in Schleifen verwendet werden kann.
Das hab ich so gelöst in dem ich einfach mehrere Schleifenvariablen nutze.
Weiterhin bin ich mir nicht sicher, ob die Bedingung: While intNum(z) = 0 richtig ist, das ein "=" in VBA doch eine Zuweisung ist?
Wenn ihr mir helfen könnt wäre ich euch sehr dankbar.