VBA : Définition aléatoire de variables

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

M

muppet4518

Guest
Bonjour à tous,

voilà mon petit problème.

J'ai 36 valeurs fixes que je souhaite affecter aléatoirement dans 36 variables différentes, préalablement définies et nommées C1, C2, C3,...,C36.

J'avais pensé créer un array avec mes 36 valeurs puis une fois la 1ère variable initialisée par random, remettre à jour le array en enlevant la valeur qui vient d'être affectée.
A ce moment, j'ai 2 soucis, le premier c'est que je ne sais pas si c'est possible et le deuxième, si c'est possible je ne sais pas comment faire.

Si quelqu'un a une solution a mon problème, ce serait sympa.
Le array n'est pas une obligation, c'était juste ma première idée et je suis ouvert à toute proposition.

Merci
 
Re : VBA : Définition aléatoire de variables

Slt Muppet et bienvenue,

Peut-être qu'avec l'utilisation d'une boucle For Next.

Vois ce petit code
Code:
Private Sub CommandButton1_Click()

    For i = 1 To 36 'Pour les lignes de 1 à 36.
        For j = 1 To 1 'Pour l'unique colonne.
            Cells(i, j) = "C" & i
        Next j
    Next i

End Sub
Mais sans fichier joint, difficile de savoir ce que tu veux exactement !

Cdt, Hulk.
 
Re : VBA : Définition aléatoire de variables

Merci bcp à tous les deux,

PierreJean, j'ai regardé ton code et fait un test rapide, ca ressemble à ce que je veux si ce n'est que le résultat doit rester dans des variables C1, C2... sous VB mais je devrais réussir à le modifier tout seul.
Je regarderai çà ce soir pour pouvoir l'insérer dans mon projet. Si je n'y arrive pas, je reviendrai vers vous.

Merci encore
 
Re : VBA : Définition aléatoire de variables

--- Message corrigé suite à une remarque de pierrejean (voir #8) ---

Bonjour à tous
Une variante sur la base de l'idée de pierrejean :
Code:
[B][COLOR="DarkSlateGray"]Sub test()
Dim liste(), C(), Coll As New Collection, i As Long
   liste = Array(10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, _
      190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 360)
   For i = LBound(liste) To UBound(liste)
      Coll.Add Item:=liste(i)
   Next i
   ReDim C(1 To Coll.Count)
   Randomize
   Do While Coll.Count
      i = 1 + Int(Coll.Count * Rnd)
      C(Coll.Count) = Coll(i)
      Coll.Remove i
   Loop
   [COLOR="SeaGreen"]'Les valeurs de la 'liste' sont maintenant aléatoirement distribuées dans le tableau 'C'.

   'Affichage en colonne A & B :[/COLOR]
   Application.ScreenUpdating = False
   For i = 1 To UBound(C)
      Cells(i, 1) = "C(" & i & ")"
      Cells(i, 2) = C(i)
   Next i
   Application.ScreenUpdating = True
End Sub[/COLOR][/B]
ROGER2327
#2056
 
Dernière édition:
Re : VBA : Définition aléatoire de variables

Bjr à tous,

j'ai testé la solution de Pierre Jean hier soir et j'ai sans problème pu l'insérer et l'adapter à mon code.
Ca marche Nickel.
Merci Roger2327 pour ta réponse mais c'est la solution de PJ que je retiens car je ne dois pas avoir de doublon.

Merci encore à tous
 
Re : VBA : Définition aléatoire de variables

Re

@ ROGER

Je viens de tester ma proposition avec 3 valeurs identiques dans l'Array (fais gaffe a l'orthographe) et ma fois je les ais bien retrouvées dans les C
A quel problème faisiez vous allusion ?
 
Re : VBA : Définition aléatoire de variables

Re...
Re

@ ROGER

Je viens de tester ma proposition avec 3 valeurs identiques dans l'Array (fais gaffe a l'orthographe) et ma fois je les ais bien retrouvées dans les C
A quel problème faisiez vous allusion ?
Bonjour pierrejean
Vous avez raison ! Et je ne sais pas pourquoi j'ai eu ce problème de doublons cette nuit : je viens de reprendre votre code qui fonctionne quelles que soient les trente-six données de la liste.
En analysant entièrement votre code, il n'y a d'ailleurs aucune raison pour qu'il en soit autrement.
Vous savez que je teste habituellement soigneusement les procédures. Mais cette fois-ci, j'ai commis une erreur que je ne parviens pas à trouver.
Conclusion : Nos deux codes font la même chose.
Je suis désolé (et fâché contre moi) d'avoir écrit une c... que je vous prie de me pardonner.​
Cordialement, et avec mes excuses,
ROGER2327
#2057

_
__________________
P.s. : Je corrige immédiatement le message fautif.
 
- 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.
Retour