IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Liste dans un ordre aléatoire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 93
    Par défaut Liste dans un ordre aléatoire
    Bonjour,

    Voila, j'ai une liste de nom de personnes et je souhaite avoir une autre liste dans un ordre aléatoire de ces personnes sans qu'il n'y ait jamais 2 fois la même personne.

    A savoir que dans la première liste il n'y a pas 2 fois le même nom..

    J'ai le code suivant pour le moment pour la partie "aléatoire" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub liste()
     
    For i = 1 To 12
     
    Range("C" & i) = Range("B1").Offset(Int((12 * Rnd) + 1), 0)
     
    Next i
     
    End Sub
    Il me manque l'astuce pour la partie jamais 2 fois le même.

    Merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    un ordre aléatoire ça s'appel le désordre!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim DejaTrouver as string
    dim txt as string
    txt= Range("B1").Offset(Int((12 * Rnd) + 1), 0)
    if instr(1,";"  & DejaTrouver  & ";",";" &  txt & ";")=0 then  Range("C" & i) =txt
    DejaTrouver=DejaTrouver & ";" & txt & ";"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 93
    Par défaut
    Bonjour,

    Merci pour ta réponse mais il y a un problème. Ton code me laisse des trous et ne reporte pas l'intégralité de la première liste dans un ordre différent.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub liste()
    dim DejaTrouver as string
    dim txt as string
    For i = 1 To 12
         txt= Range("B1").Offset(Int((12 * Rnd) + 1), 0)
         if instr(1,";"  & DejaTrouver  & ";",";" &  txt & ";")=0 then  Range("C" & i) =txt : DejaTrouver=DejaTrouver & ";" & txt & ";"  else i=i-1 
    Next i
    End Sub

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Autrement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub TriAlea()
    Dim Nb As Integer, i As Integer, j As Integer
    Dim Tmp As String
    Dim Tb
     
    Nb = 12
    With Worksheets("Test")    'à adapter
        Tb = .Range("B1").Resize(Nb)
        For i = 1 To Nb
            Do
                Randomize
                j = Int((Nb - 1) * Rnd()) + 1
            Loop Until i <> j
     
            Tmp = Tb(i, 1)
            Tb(i, 1) = Tb(j, 1)
            Tb(j, 1) = Tmp
        Next i
        .Range("C1").Resize(Nb) = Tb
    End With
    End Sub

Discussions similaires

  1. Liste dans l'ordre inverse
    Par Pierre69200 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/05/2015, 08h22
  2. Afficher les paramètres d'une macro dans un ordre aléatoire
    Par oc_alex86 dans le forum Programmation (La)TeX avancée
    Réponses: 2
    Dernier message: 10/11/2013, 18h10
  3. Défilement images dans un ordre aléatoire
    Par jonaszrenard dans le forum Flash
    Réponses: 8
    Dernier message: 03/04/2010, 22h14
  4. Réponses: 5
    Dernier message: 01/02/2010, 10h25
  5. Réponses: 3
    Dernier message: 24/02/2007, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo