melanger une liste de noms

  • Initiateur de la discussion Initiateur de la discussion christelle44
  • 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 !

C

christelle44

Guest
bonjour,
je veux créer un tableau aléatoire pour générer un graphique dynamique mais je n'arrive pas a mélanger ma liste de noms.
Suis peut être gourdasse 😛

En attendant dans ma colonne A, j'ai une liste de noms. J'ai essayé : =aléa(A1.A27), cela ne fonctionne pas. J'ai trouvé une formule sur un forum : =INDEX(A1:A27;ALEA.ENTRE.BORNES(A1;A27)) cela ne fonctionne pas non plus.

Qui peut m'aider, j'essaie d'aider un ami dans son travail mais la juste pour çà je bloque😡

merci
Christelle
 
Bonjour.
J'utilise d'habitude cette procédure VBA pour constituér des numéros uniques en ordre aléatoire :
VB:
Private Sub InitAléa(TA() As Long, ByVal Nombre As Long)
Dim P1 As Long, P2 As Long, A As Long
ReDim TA(1 To Nombre)
For P1 = 1 To Nombre: TA(P1) = P1: Next P1
Randomize
For P1 = Nombre To 2 Step -1
  P2 = Int(Rnd * P1) + 1
  A = TA(P2): TA(P2) = TA(P1): TA(P1) = A
  Next P1
End Sub
 
Exemple de code permettant de maitriser la décision de reconstituer le tirage :
VB:
Option Explicit

Sub ProduireNomAléat()
GénérerNomAléat ActiveSheet.[C3:C14], ActiveSheet.[B3:B14]
End Sub

Sub GénérerNomAléat(ByVal PlgRésu As Range, ByVal PlgNoms As Range)
Dim TNoms(), TA() As Long, TRésu(), L As Long
TNoms = PlgNoms.Value
InitAléa TA, UBound(TNoms, 1)
ReDim TRésu(1 To PlgRésu.Rows.Count, 1 To 1)
For L = 1 To UBound(TRésu)
  If L > UBound(TA) Then Exit For
  TRésu(L, 1) = TNoms(TA(L), 1): Next L
PlgRésu.Value = TRésu
End Sub

Private Sub InitAléa(TA() As Long, ByVal Nombre As Long)
Dim P1 As Long, P2 As Long, A As Long
ReDim TA(1 To Nombre)
For P1 = 1 To Nombre: TA(P1) = P1: Next P1
Randomize
For P1 = Nombre To 2 Step -1
  P2 = Int(Rnd * P1) + 1
  A = TA(P2): TA(P2) = TA(P1): TA(P1) = A
  Next P1
End Sub
 
Dernière édition:
- 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
18
Affichages
415
Réponses
10
Affichages
866
Retour