Re: faire un tableau en VBA
Auteur: @+Thierry (---.monaco377.com)
Date: 28-11-04 15:33
Bonjour Celeda, Micheline, l'Equipe de Choc : Didier/Horatio
Je n'ai pas vu le kiki de Zon (ouf lol), mais par contre je suis content de te croiser Celeda depuis tout ce temps et je te fais une grosse bise.
Et bien sûr je suis aussi content de te croiser Didier, mais on a déjà eu l'occasion de se croiser dans le Tchat, quant à mon Amiral, c'est toujours un plaisir
Sinon voici aussi une variante au cas où on ne veut absolument pas de doublons dans les dix retournés.
Option Explicit
Sub TabAleatoire()
Dim TheCol As Collection
Dim TheColItem As Variant
Dim TheTab(10) As Byte
Dim TheNum As Integer
Dim TheNumber As String
Dim i As Byte
Dim X As Byte
Set TheCol = New Collection
On Error Resume Next
For i = 0 To 99
Randomize (i)
TheNum = Int((100 * Rnd))
TheCol.Add TheNum, CStr(TheNum)
Next
On Error GoTo 0
For Each TheColItem In TheCol
TheTab(X) = TheColItem
X = X + 1
If X = 10 Then Exit For
Next
'ICI c'est juste pour vider le tableau vers un MsgBox et la feuille active...
For i = 0 To 9
TheNumber = TheNumber & vbTab & TheTab(i) & vbCrLf
Range('A' & Range('A5000').End(xlUp).Row + 1) = TheTab(i)
Next
MsgBox 'Voici vos dix numéros tirés au sort aléatoirement sans doublon' & vbCrLf & TheNumber
End Sub
Pour la petite histoire, curieusement j'avais fait ceci logiquement :
On Error Resume Next
For i = 1 To 10
Randomize
TheNum = Int((100 * Rnd))
TheCol.Add TheNum, CStr(TheNum)
Next
On Error GoTo 0
Et sur beaucoup de tests, je me suis retrouvé avec deux retours de zéro... Enfin bon, je ne sais pas, ce doit être le resume next qui me fait un tour, en tout cas ça n'a pas l'air de le faire avec la boucle plus haut...
Mais peut-être ce n'est pas le besoin de Micheline.
Bon Dimanche à tous et toutes
@+Thierry