XL 2016 valeurs obtenu par aléa()

Seddiki_adz

XLDnaute Impliqué
bonjour
si possible de fixer les valeurs obtenu par aléa()?
Merci
 

Pièces jointes

  • ccc.xlsx
    33.5 KB · Affichages: 9
Solution
Bonsoir Seddiki_adz, Soan,
Si le but est de faire des tirages au sort ( 5 dans votre fichier ), cela ne peut marcher qu'avec des copier/coller valeurs à la main.
Ou alors faire directement les tirages par VBA.
En PJ un exemple où on fait 10 tirages aléatoires avec cette macro :
VB:
Sub Tirage()
    Application.ScreenUpdating = False
    DL = Range("B65500").End(xlUp).Row  ' dernière ligne
    tablo = Range("B2:B" & DL)          ' transfert des noms dans un tablo
    ReDim Alea(DL)                      ' nouveau tableau de même taille pour contenir des nombres aléatoires
    For Colonne = 4 To 13   ' de la colonne D à la colonne M soit 10 tirages.
        For i = 0 To UBound(Alea)       ' on remplit le tableau de valeurs alea...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Seddiki_adz, Soan,
Si le but est de faire des tirages au sort ( 5 dans votre fichier ), cela ne peut marcher qu'avec des copier/coller valeurs à la main.
Ou alors faire directement les tirages par VBA.
En PJ un exemple où on fait 10 tirages aléatoires avec cette macro :
VB:
Sub Tirage()
    Application.ScreenUpdating = False
    DL = Range("B65500").End(xlUp).Row  ' dernière ligne
    tablo = Range("B2:B" & DL)          ' transfert des noms dans un tablo
    ReDim Alea(DL)                      ' nouveau tableau de même taille pour contenir des nombres aléatoires
    For Colonne = 4 To 13   ' de la colonne D à la colonne M soit 10 tirages.
        For i = 0 To UBound(Alea)       ' on remplit le tableau de valeurs alea
            Alea(i) = Rnd
        Next i
        For i = 1 To UBound(tablo)      ' on tri sur les valeurs alea croissantes
            For j = 1 To UBound(tablo)
                If Alea(i) > Alea(j) Then
                    Buffer = Alea(i): Alea(i) = Alea(j): Alea(j) = Buffer
                    Buffer = tablo(i, 1): tablo(i, 1) = tablo(j, 1): tablo(j, 1) = Buffer
                End If
            Next j
        Next i
        Cells(2, Colonne).Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo    ' on restitue les données
    Next Colonne
    Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • TirageSort.xlsm
    23 KB · Affichages: 5

Seddiki_adz

XLDnaute Impliqué
Bonsoir Seddiki_adz, Soan,
Si le but est de faire des tirages au sort ( 5 dans votre fichier ), cela ne peut marcher qu'avec des copier/coller valeurs à la main.
Ou alors faire directement les tirages par VBA.
En PJ un exemple où on fait 10 tirages aléatoires avec cette macro :
VB:
Sub Tirage()
    Application.ScreenUpdating = False
    DL = Range("B65500").End(xlUp).Row  ' dernière ligne
    tablo = Range("B2:B" & DL)          ' transfert des noms dans un tablo
    ReDim Alea(DL)                      ' nouveau tableau de même taille pour contenir des nombres aléatoires
    For Colonne = 4 To 13   ' de la colonne D à la colonne M soit 10 tirages.
        For i = 0 To UBound(Alea)       ' on remplit le tableau de valeurs alea
            Alea(i) = Rnd
        Next i
        For i = 1 To UBound(tablo)      ' on tri sur les valeurs alea croissantes
            For j = 1 To UBound(tablo)
                If Alea(i) > Alea(j) Then
                    Buffer = Alea(i): Alea(i) = Alea(j): Alea(j) = Buffer
                    Buffer = tablo(i, 1): tablo(i, 1) = tablo(j, 1): tablo(j, 1) = Buffer
                End If
            Next j
        Next i
        Cells(2, Colonne).Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo    ' on rla estitue les données
    Next Colonne
    Application.ScreenUpdating = True
End Sub
je la ferme
excellent
grand grand merci
mes salutation
 

Discussions similaires

Réponses
3
Affichages
571

Statistiques des forums

Discussions
312 438
Messages
2 088 411
Membres
103 847
dernier inscrit
Girardon