1.6k Aufrufe
Gefragt in Tabellenkalkulation von robbi58 Mitglied (966 Punkte)

Ich möchte ein Blatt mit fortlaufenden Rechnungen erstellen. Dazu habe ich in Spalte A Zufallsbereiche generiert

=ZUFALLSBEREICH(1;100) .

Diese übertrage ich in die blauen Felder mit einer Formel ( = A1, ... ). So weit so gut. In die grüne Spalte kommen die Ergebnisse der "Kopfrechnung". Mitunter passiert es jedoch, dass mit dem Klick auf eine grüne Zelle die Zufallszahlen erneut generiert werden, was die vorherigen Eingaben in den Ergebnisfeldern nutzlos macht. Wie kann ich dies verhindern. Oder gibt es eine Möglichkeit, die Zufallszahlen per CommandButton etc. zu generieren? Danke Robert M.

28 Antworten

0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Hallo M.O.

Da hast du dich ordentlich ins Zeug gelegt. Ich habe deine Anweisungen befolgt, leider hat sich das gewünschte Resultat nicht eingestellt. Es liegt vielleicht auch daran, dass mein PC nicht so tut wie ich will. Die Formel habe ich beim Blatt ins Modul kopiert, wo sie aber ständig wieder gelöscht wird; zumindest ist sie nicht mehr sichtbar. Dasselbe gilt für die automatische Berechnung, die ich auch von dir habe (das Formelergebnis im Blatt wird jedoch angezeigt). Deshalb auch die Fehlermeldung, da er die Datei " Call groesserNull" sucht.

Ich habe mal das Beispiel hochgeladen, da meine Fehlerbeschreibungen eher laienhaft sind.

https://filehorst.de/d/********

Aber wie heißt es meistens: der Fehler liegt nicht am PC, sondern an dem, der davor sitzt.

Danke, Robert
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Robert,

dass mein zuletzt geposteter Code nicht funktioniert, liegt daran, dass der Aufbau der Tabelle aus deinem zuletzt geposteten Bild und die Tabelle, in der du ihn eingefügt hast, so gar nicht übereinstimmen!

Wenn du den Code für diesen Aufbau brauchst, dann muss der Code entsprechend angepasst werden.

Gruß

M.O.
0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Hallo!

Ok. Da merkt man den Anfänger. Aber ich habe es bei dem von mir eingereichten Beispiel auch versucht. Das Problem ist, dass ich die Formel zwar ins Modul schreibe, diese dann aber automatisch gelöscht wird. So dass ich einen eigentlichen Versuch nur einmal starten konnte. Leider habe ich gestern den verhängnisvollen Fehler gemacht und meinen Laptop den Kindern überlassen. Heute läuft er sehr langsam und ich bekomme oft Fehlermeldungen. Virenscan war negativ. Ich installiere das Office 365 neu, vielleicht lässt sich damit mein Problem lösen.

Robert
0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)

Leider Status quo.

Ich gebe die Formel in das Modul ein, die du zuletzt gepostet hast. Sobald ich aber den Command Button drücke, passiert nichts. Schau ich im Modul nach, ist die Formel nicht mehr sichtbar und ich bekomme die Fehlermeldung

Call groesserNull

​groesserNull nicht eindeutig definiert.
Bis jetzt habe ich deine Hilfe (M.O.) stets umsetzen können, hier aber habe ich keine Erklärung, warum die Formel stets gelöscht wird! 
Robert

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Robert,

lade mal deine Beispieldatei hoch.

Gruß

M.O.
0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Ich habe die Beispielsdatei hochgeladen.

https://filehorst.de/d/cCGkiikd

Ich hoffe, jemand hat die Möglichkeit, den Grund für das Löschen der Formel im Modul zu finden.

Robert
+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Robert,

das Problem ist nicht, dass der Code nicht gespeichert wird, sondern dass du den Code mehrfach in verschiedenen Modulen und Klassenmodulen eingefügt hast.

Lösche alle Module und Klassenmodule bis auf das Modul 9.

Ergänze den Code für den Commandbutton wie folgt:

Private Sub CommandButton1_Click()
Sheets("sheet1").Range("A:A").ClearContents

For i = 1 To 15

generate:

RowNum = Application.RoundUp(Rnd() * 20, 0)

If Application.CountIf(Sheets("sheet1").[A:A], Sheets("sheet2").Cells(RowNum, "A")) = 0 Then
Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Offset(1).Value = Sheets("Sheet2").Cells(RowNum, "A").Value
Else
GoTo generate
End If
Next i

Call groesserNull

End Sub

Dann sollte es funktionieren. Hier ist die bearbeitetete Datei: https://filehorst.de/d/cotIAHry

Beachte Bitte, dass in den Fomeln in allen Feldern zwischen Spalte D und dem Gleichheitszeichen Zahlen oder Rechenzeichen stehen müssen, sonst kommte es im Prüfmakro zu einem Fehler.

Gruß

M.O.

0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Recht herzlichen Dank für deine großartige Hilfe!

Ich muss mich jetzt wirklich mit Makros und VBA näher beschäftigen, um solche Anfängerfehler zu vermeiden.

Robert
...