Einführung "VBA mit Microsoft Office"

Code Snippet "VBA Excel"

In ausgewählten Zellen Zufallszahlen aus einem bestimmten Bereich erzeugen

funktioniert auch mit mehreren nichtzusammenhängenden Markierungen

Sub ZufallszahlenGenerieren(ByRef objRange As Range, ByVal untergrenze As Double, _
  ByVal obergrenze As Double, ByVal anzStellen As Integer)
  
  Dim objR As Range
  
  Application.ScreenUpdating = False
  objRange.Formula = "=ROUNDDOWN(RAND()*" & (obergrenze - untergrenze) & "+ " & untergrenze & _
    "," & anzStellen & ")"
  For Each objR In objRange.Areas
      objR.Copy
      objR.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
          False, Transpose:=False
  Next
  Application.CutCopyMode = False
  Application.ScreenUpdating = True

End Sub

Sub ZufallszahlenInSelection()
  Dim untergrenze As Double
  Dim obergrenze As Double
  Dim anzStellen As Integer
  
  If MsgBox("Möchten Sie im markierten Bereich Zufallszahlen erstellen?", vbYesNo) = vbYes Then
    untergrenze = InputBox("Untergrenze?")
    obergrenze = InputBox("Obergrenze?")
    anzStellen = InputBox("Anzahl Stellen für Rundung")
    Call ZufallszahlenGenerieren(Selection, untergrenze, obergrenze, anzStellen)
  End If
End Sub