cs_papilou
Messages postés3Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention27 février 2011
-
27 févr. 2011 à 21:48
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 2016
-
1 mars 2011 à 18:25
Bonjour à tous. J'ai adhéré à VB pour les très nuls et je vous remercie d'avance de votre compréhension.
Voilà : j'ai un fichier Excel avec une colonne comportant 65 chiffres de 1 à 65. Je voudrais extraire de façon aléatoire 1 (et 1 seul) chiffre de cette liste et le copier dans une autre feuille. Puis extraire un autre chiffre (différent du premier) et le copier dans cette autre feuille puis un 3ème et dernier chiffre. Merci de m'indiquer un petit code pour réaliser cette manipulation (insurmontable pour moi).
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 28 févr. 2011 à 05:57
Indice : remplis un tableau de 65 éléments, ordonné (1, 2, 3, ... 64, 65), et une fois qu'il est rempli tu échanges chaque élément du tableau avec un autre élément tiré au hasard entre 1 et 65. Ensuite, tu utilises les éléments mélangés du tableau un par un.
Ca te permettra d'obtenir un tirage aléatoire, sans doublons.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 1 mars 2011 à 18:25
Bonjour,
Sub es()
Dim nb(65) As Boolean
Do
nbalea = Int(Rnd * 65 + 1)
If nb(nbalea) = False Then
nb(nbalea) = True
tire = tire + 1
Debug.Print tire & " > " & nbalea
End If
Loop Until tire > 64
End Sub
A la place de Debug.print utilise une référence à une cellule incrémentée.
C'est moins élégant que l'idée de Bacterius, mais aussi efficace pour un nombre raisonnable...