Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

=Zufallszahl() soll sich nicht verändern





Frage

Hallo, folgendes Problem besteht: Wenn in z.B. A1 die Formel =ZUFALLSZAHL() steht kommt - was sonst? - eine Zufallszahl zwischen 0 und 1 Wenn nun in eine andere Zelle etwas eingegeben wird, verändert sich die Zufallszahl automatisch. Wie bekomme ich es hin, dass die Zufallszahl nicht automatisch verändert wird, sondern bleibt, wie sie beim ersten mal "ausgeschmissen" wurde? Gruß Balumba

Antwort 1 von Guenter

Hallo,

Du kannst in den Extras Optionen Berechnung
Berechnung auf Manuell stellen.

Das wäre die einfachste Lösung.

Gruß
Günter

Antwort 2 von Arnim

Hallo Balumba,
markiere den Bereich, klicke ihn mit der re.Maustaste an und wähle "kopieren". Klicke wieder rechts und wähle "Inhalte einfügen"- klicke "Werte" an und drücke "Enter".

Gruß Arnim

Antwort 3 von balumba

Hallo,

erstmal ein Dank an Euch beide.

Leider hat es nicht den gewünschten Erfolg gebracht.

@Günther:
Die Berechnung auf Manuell zu stellen geht nicht, da andere Werte immer automatisch berechnet werden müssen (z.B. weitere Formeln die mit der Zufallszahl weiterrechnen).

@Armin:
Deine Lösung ist auch nicht prktikabel für mich, das bei jedem öffnen der Datei eine neue Zufallszahl erzeugt werden soll, ohne immer wieder "..Inhalte Einfügen..." etc. einzugeben.
Diese Zufallszahl darf sich solange nicht ändern, bis das Arbeitsblatt geschlossen wird.


Ich habe es auch schon, mit einem Makro versucht...

sub zufallszahl()
range("a1").select
activecell.formular1c1 = "=rand()"
end sub


Leider wird auch hier die Zufallszahl immer wieder verändert.


Noch jemand eine Idee?


Gruß
Balumba


Antwort 4 von KK


Generiere doch einfach eine Zufallszahl und trage DIESEN Zahlenwert anstatt der Zufallsfunktion in Deine Formel ein.

Oder ist das ZU einfach ?!

:)

Antwort 5 von balumba

?!

Ich geb mal ein Beispiel, wie ich es meine:
A1=ZUFALLSZAHL() -> Zelle gesperrt, kann vom User nicht geändert werden.
B1=A1+1

Wenn ich jetzt in C1 irgenwas eingebe (z.B. eine "1" [RETURN]), dann ändert sich immer die Zufallszahl in A1. Die MUSS aber zwingend gleich bleiben und bei jedem Öffnen der Arbeitsmappe MUSS eine neue Zufallszahl erzeugt werden - die sich natürlich bis zum Schließen der Mappe nicht verändern darf.

Ist es verständlicher geworden?


Antwort 6 von KK

Ich glaube, ich habs kapiert.

Versuche es doch einfach mal mit folgendem Makro.
Beim Öffnen der Datei wird eine Zufallszahl im Script generiert und der Zahlenwert in Zelle A1 geschrieben.
Die Zufallszahl ändert sich also nur beim Öffnen der Tabelle und bleibt danach erhalten.


Private Sub Workbook_Open()
Dim zufallszahl As Single
zufallszahl = Rnd
Cells(1, 1).Value = zufallszahl
End Sub




Antwort 7 von Guenter

Hallo,

wenn Du mit Makro arbeiten willst, dann vielleicht so:

Option Explicit

Sub zufallszahl()
  Dim Wert1
  Randomize    ' Zufallszahlengenerator initialisieren.
  Wert1 = Rnd
  Cells(1, 1).Value = Wert1
End Sub



Das Makro kannst Du auch in eine Workbook_open schreiben, damit beim öffnen der Datei das MAkro ausgeführt wird.

Gruß
GÜnter

Antwort 8 von balumba

Klappt Wunderbar!
Ich habe @KK`s Makro genommen.
Eine Sache noch:
Kann ich bei dem Makro angeben, dass die Zufallszahl von z.B. 1-4 sein darf?
Momentan ist sie immer 0,134545543 (oder so halt :-) ).

Antwort 9 von Viktor

In allen Programmiersprachen gilt das Gleiche - Brauchst Du einen Wert von einem Intervall <0-N), machst Du Rand()*N - und falls Du es noch als Ganzzahl haben willst, machst Du Round().

Ich kann es mir nicht sparen - wie hast Du Dir vorgestellt, daß sich der Wert zwischen mehreren Aufrufen von Rand() sich nicht verändern würde... Was wäre es denn für einen Zufall? Brauchst Du den Wert einmal kriegen und dann mehrmals verwenden, musst Du ihn halt irgendwo vermerken...in einer Variable oder so.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: