Serie unieke, willekeurige getallen
De volgende macro staat in hoofdstuk 8 van Excel VBA voor Professionals Derde editie.
Deze macro trekt een serie willekeurige getallen, waarvan er niet één gelijk is aan een ander.
De getallen worden in kolom F onder elkaar gezet.
Je bepaalt zelf tussen welke grenzen deze getallen moeten liggen:
geef in de code hieronder bij Min het kleinste getal op, geef bij Max het grootste getal op.
Bij Aantal geef je op, hoeveel getallen je wilt hebben. LET OP: dit aantal mag niet groter zijn dan Max !
* Of, als Min groter is dan 1, neem dan Max minus Min plus 1. Aantal mag niet groter zijn.
De serie unieke, willekeurige getallen wordt in kolom F van het werkblad onder elkaar geplaatst.
Sub UniekeGetallenTussen()
Dim Min As Integer, Max As Integer
Dim i As Integer, Getal As Integer
'Bepaal de minimum- en maximumwaarde:
Min = 1
Max = 20
'Geef het aantal getallen op:
Aantal = 10 'LET OP: dit mag niet groter zijn dan Max !
Application.ScreenUpdating = False
Columns("F:F").Select
Selection.ClearContents
For i = 1 To Aantal
Do
Getal = Rnd * (Max - Min)
Getal = Getal + Min
Loop Until Range("F1:F" & i).Find(Getal, LookAt:=xlWhole) Is Nothing
Range("F" & i) = Getal
Next i
Range("F1").Select
Application.ScreenUpdating = True
End Sub
Deze macro trekt een serie willekeurige getallen, waarvan er niet één gelijk is aan een ander.
De getallen worden in kolom F onder elkaar gezet.
Je bepaalt zelf tussen welke grenzen deze getallen moeten liggen:
geef in de code hieronder bij Min het kleinste getal op, geef bij Max het grootste getal op.
Bij Aantal geef je op, hoeveel getallen je wilt hebben. LET OP: dit aantal mag niet groter zijn dan Max !
* Of, als Min groter is dan 1, neem dan Max minus Min plus 1. Aantal mag niet groter zijn.
De serie unieke, willekeurige getallen wordt in kolom F van het werkblad onder elkaar geplaatst.
Sub UniekeGetallenTussen()
Dim Min As Integer, Max As Integer
Dim i As Integer, Getal As Integer
'Bepaal de minimum- en maximumwaarde:
Min = 1
Max = 20
'Geef het aantal getallen op:
Aantal = 10 'LET OP: dit mag niet groter zijn dan Max !
Application.ScreenUpdating = False
Columns("F:F").Select
Selection.ClearContents
For i = 1 To Aantal
Do
Getal = Rnd * (Max - Min)
Getal = Getal + Min
Loop Until Range("F1:F" & i).Find(Getal, LookAt:=xlWhole) Is Nothing
Range("F" & i) = Getal
Next i
Range("F1").Select
Application.ScreenUpdating = True
End Sub