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
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
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
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?
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
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:
Das Makro kannst Du auch in eine Workbook_open schreiben, damit beim öffnen der Datei das MAkro ausgeführt wird.
Gruß
GÜnter
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 :-) ).
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 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.