Excel Zufallsbereich ohne ständige neu Berechnung bei einer Änderung
Hallo Leute,
Ich stehe vor einem kleinen\großen Problem.
Was ich machen möchte:
Ich trage in Zelle A1 etwas ein und brauche in Zelle B1 eine Zufallszahl die sich nicht mehr ändern soll. Außer wenn ich in A1 einen neuen Wert reinschreibe, dann darf sich auch die Zufallszahl in B1 neu generiert werden.
Und das natürlich nicht nur bei A1 sondern fortlaufend von A1:A1000 bzw. B1:B1000
Laienhaft ausgedruckt B1: =WENN(A1<>"";Zufallsbereich(25;55);"") <--- und die generierte Zufallszahl in B1 darf sich nicht ändern sollange der Wert in A1 gleich bleibt.
Was derzeit passiert:
In der ersten zeile passt alles aber sobald ich bei A2 etwas Eintrage oder im rest des Arbteisblattes etwas ändere, ändern sich alle Zahlen in den Zellen mit den Zufallsbereichen (B1:B1000)
Was ich schon Probiert habe.
1. Ich mache in Spalte B eine Datenüberprüfung mit "Liste" und als Quelle gebe ich eine Zelle an wo die Formel mit dem Zufallsbereich steht.
Problem: Würde zwar funktionieren aber ich muss immer das Drop-down menü aufmachen um die zufallszahl anklicken damit Sie in der Zelle ist. Und Wenn ich Spalte A lösche um neue Werte nacheinander einzutragen stehen die alten zufallszahlen da und werden nicht neu berechnet.
2. Die Berechnung der Formeln auf Manuell zu stellen geht nicht da sehr viele andere Formeln im kompletten Dokument sind und dann müsste ich jede einzelene Formel mit F9 Manuell starten.
Ich suche schon seit tagen in Foren nach einer lösung aber leider ohne erfolg. Vielleicht kennt Ihr eine möglichkeit wie ich das lösen könnte.
Danke
Ich stehe vor einem kleinen\großen Problem.
Was ich machen möchte:
Ich trage in Zelle A1 etwas ein und brauche in Zelle B1 eine Zufallszahl die sich nicht mehr ändern soll. Außer wenn ich in A1 einen neuen Wert reinschreibe, dann darf sich auch die Zufallszahl in B1 neu generiert werden.
Und das natürlich nicht nur bei A1 sondern fortlaufend von A1:A1000 bzw. B1:B1000
Laienhaft ausgedruckt B1: =WENN(A1<>"";Zufallsbereich(25;55);"") <--- und die generierte Zufallszahl in B1 darf sich nicht ändern sollange der Wert in A1 gleich bleibt.
Was derzeit passiert:
In der ersten zeile passt alles aber sobald ich bei A2 etwas Eintrage oder im rest des Arbteisblattes etwas ändere, ändern sich alle Zahlen in den Zellen mit den Zufallsbereichen (B1:B1000)
Was ich schon Probiert habe.
1. Ich mache in Spalte B eine Datenüberprüfung mit "Liste" und als Quelle gebe ich eine Zelle an wo die Formel mit dem Zufallsbereich steht.
Problem: Würde zwar funktionieren aber ich muss immer das Drop-down menü aufmachen um die zufallszahl anklicken damit Sie in der Zelle ist. Und Wenn ich Spalte A lösche um neue Werte nacheinander einzutragen stehen die alten zufallszahlen da und werden nicht neu berechnet.
2. Die Berechnung der Formeln auf Manuell zu stellen geht nicht da sehr viele andere Formeln im kompletten Dokument sind und dann müsste ich jede einzelene Formel mit F9 Manuell starten.
Ich suche schon seit tagen in Foren nach einer lösung aber leider ohne erfolg. Vielleicht kennt Ihr eine möglichkeit wie ich das lösen könnte.
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 572331
Url: https://administrator.de/contentid/572331
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
7 Kommentare
Neuester Kommentar
ALT-F11 drücken und im Sheet-Code-Abschnitt einfügen, feddisch:
Private Sub Worksheet_Change(ByVal Target As Range)
Set rngIntersect = Application.Intersect(Range("A1:A1000"), Target)
If Not rngIntersect Is Nothing Then
For Each cell In rngIntersect
cell.Offset(0, 1).Value = IIf(cell.Value <> "", Int((55 - 25 + 1) * Rnd + 25), "")
Next
End If
End Sub
Zitat von @semper:
Denn anscheinend erkennt er Formeln als <>"" an un berechnet keine neue Zahl wenn die Formel ein neues Ergebnis ausgbit.
Nöp, Formeln ändern das Ergebnis dieser aber nicht den Inhalt der Zelle denn die Formel bleibt ja gleich, deswegen feuert das Event hier nicht...Denn anscheinend erkennt er Formeln als <>"" an un berechnet keine neue Zahl wenn die Formel ein neues Ergebnis ausgbit.
https://superuser.com/questions/1298289/excels-worksheet-change-event-no ...
Du musst dann halt von jeder Zelle in Spalte A den alten Wert in einen Backup Bereich schreiben und dann im Calculate Event alle Zellen mit dem Backupbereich vergleichen.
Kenne mich leider überhauptnicht mit VBA und Makros aus.
Dann lerne es 😉