Données aléatoires avec macro

  • Initiateur de la discussion Initiateur de la discussion Sylvain
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Sylvain

Guest
Bonjour,
Après maintes recherches sur le net et tentatives infructueuses, je me permet de vous faire part de mon soucis.
Voilà, je souhaiterais trouver une macro qui me permette d'afficher de façon aléatoire et sans doublons dans la ligne 2 [10 cellules] de ma feuille 1 les données contenues [ au nombre de 50] dans la colonne 1 de ma feuille 2.
Je remercie d'avance tous ceux qui pourront le débutant que je suis.
Sylvain
 
Bonjour Sylvain, bonjour le forum,

Je ne comprends pas très bien... Tu veux afficher de façon aléatoire 50 données dans 10 cellules... Es-tu sûr que les 40 autres données sont des doublons des 10 premières ? Désolé mais mon petit cerveau a besoin de précisions pour pouvoir t'aider.
 
Bonjour Sylvain, bonjour le forum,

Ben oui Sylvain... Dit comme ça. Des fois je me demande pourquoi je suis tant compliqué...

Je te propose la macro suivante :

Sub Macro1()
Dim x As Byte, y As Byte 'déclare les variable x et y
Dim li As Byte 'déclare la variable li
Dim val() As Byte 'déclare le tableau de variables val

For x = 1 To 10 'boucle 1 sur 10 éléments
Randomize 'initialise le générateur de nombres aléatoires
li = Int((50 * Rnd) + 1) 'définit la variable li aléatoirement
'attribue à la cellule L2Cx une des valeurs aléatoirement de la colonne A (Feuil2)
Sheets('Feuil1').Cells(2, x).Value = Sheets('Feuil2').Cells(li, 1).Value

'partie pour éviter les doublons
ReDim Preserve val(x - 1) 'redéfinit le tableau de variable val

If x > 1 Then 'condition 1 : si x est supérieur à 1

For y = 0 To UBound(val, 1) 'boucle 2 sur toutes les valeurs du tableau de variables val

If li = val(y) Then 'condition 2 : Si la variable li est égale à la valeur du tableau val
Sheets('Feuil1').Cells(2, x).Value = '' 'vide la cellule L2Cx
x = x - 1 'redéfinit la variable x
GoTo suite 'va à la balise suite
End If 'fin de la condition 2

Next y 'prochaine valeur du tablau de variable val

End If 'fin de la condition 1

val(x - 1) = li 'attribut la valeur de li à la nouvelle variable du tableau val

suite: 'balise

Next x 'prochain élément de la boucle 1
End Sub

À mon avis il doit y avoir bien plus simple mais je n'ai pas mieux. [file name=sylvain.zip size=9318]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/sylvain.zip[/file]
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
547
Retour