Mettre une série de nombres dans le désordre

Fermé
achille777 Messages postés 1 Date d'inscription samedi 13 août 2011 Statut Membre Dernière intervention 13 août 2011 - 13 août 2011 à 02:53
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 - 13 août 2011 à 10:10
Bonjour à tous,
j'aurais une question à vous poser par rapport à l'utilisation d'excel.
j'ai tapé dans la colonne A une série de nombres de 1 à 148 dans un ordre croissant et j'aimerais que cette série soit désordonnée.
j'ai cherché sur internet un moyen de mélanger ces nombres et j'ai trouvé une technique de "tri aléatoire". j'ai essayé de l'appliquer mais étant malheureusement très mauvais en informatique je ne suis pas parvenu à mes fins.
je demande donc l'aide de personnes plus expérimentées.

merci d'avance et bonne soirée.

2 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 943
Modifié par Mytå le 13/08/2011 à 03:15
Salut le forum

Code à mettre dans un module
Sub RemplissageAleatoire() 
    Dim Tableau As Collection 
    Dim Plage As Range 
    Dim Cell As Range 
    Dim i As Integer, j As Integer 
  
    Set Tableau = New Collection 
    Set Plage = Range("A1:A148") 
     
    For Each Cell In Plage 
        Tableau.Add Cell.Address 
    Next Cell 
  
    For j = 1 To Plage.Count 
        Randomize 
        DoEvents 
        i = Int((Tableau.Count * Rnd)) + 1 
  
        Range(Tableau(i)) = j 
        Tableau.Remove i 
        DoEvents 
    Next j 
  
End Sub 

Il suffit de lancer la macro pour générer des nombres aléatoires
dans la plage A1:A148

Mytå
Quelle prétention de prétendre que l'informatique est récente
Adam et Eve avaient déjà un Apple ! [MsProject 2003(FR), Excel 2003-2007(FR)]
1
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
13 août 2011 à 10:10
bonjour,

une autre solution sans macro mais avec une colonne supplémentaire

A1=ALEA() à tirer jusqu'en A148
B1=rang(A1;$A$1:$A$148) à tirer jusqu'en B148

bonne suite
1