AW: excel =ZUFALLSBEREICH(1;7)/1000
19.09.2011 12:09:28
fcs
Hallo pedro,
hier zwei Varianten.
Die 1. nutzt die Tabellenfunktion, der aktuelle Zellwert wird dazu zwischengespeichert.
Die 2. nutz die VBA-interne Randam-Funktion.
Gruß
Franz
Sub Add_Random()
Dim Zelle As Range, Bereich As Range, Wert As Double, WertRandom As Double
If MsgBox("Zufallzahl zu markierten Zellen addieren?", _
vbQuestion + vbOKCancel, "Zufallszahl 1/1000 bis 7/1000 addieren") = vbCancel Then Exit Sub
Set Bereich = Selection
Application.ScreenUpdating = False
For Each Zelle In Bereich
Wert = Zelle.Value
Zelle.FormulaR1C1 = "=RANDBETWEEN(1,7)/1000"
WertRandom = Application.WorksheetFunction.Round(Zelle.Value, 3)
Zelle = WertRandom + Wert
' Zelle.Offset(0, 1).Value = Wert 'Testzeile
' Zelle.Offset(0, 2).Value = WertRandom 'Testzeile
Next
Application.ScreenUpdating = True
End Sub
Sub Add_Random_2()
Dim Zelle As Range, Bereich As Range, Wert As Double, WertRandom As Double
If MsgBox("Zufallzahl zu markierten Zellen addieren?", _
vbQuestion + vbOKCancel, "Zufallszahl 1/1000 bis 7/1000 addieren") = vbCancel Then Exit Sub
Set Bereich = Selection
Application.ScreenUpdating = False
For Each Zelle In Bereich
' Zelle.Offset(0, 1).Value = Zelle.Value 'Testzeile
Zelle = Application.WorksheetFunction.Round(Zelle.Value + _
Int((7 - 1 + 1) * Rnd + 1) / 1000, 3)
' Zelle.Offset(0, 2).Value = Application.WorksheetFunction.Round(Zelle.Value - _
Zelle.Offset(0, 1).Value, 3) 'Testzeile
Next
Application.ScreenUpdating = True
End Sub