liste aleatoire sans doublons

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

P

perdinch

Guest
Bonjour
comment générer par VBA une liste aléatoire de nombre entre 1 et 20 sans doublons

merci
 
Ave,

Sub zz_Tirage_Alea()
Application.ScreenUpdating = False
mini = 1: maxi = 20
[A1] = mini
[A1].DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=mini, Stop:=maxi
With Range('B1:B' & maxi + 1 - mini)
.Value = '=rand()'
[B1].Sort Key1:=[B1], Order1:=xlAscending
.ClearContents
End With
End Sub

AV [AV MVP Excel]
 
Bonjour perdinch, cher michel, re av 🙂


une autre facon de faire, plus longue que la méthode d'AV, mais sans l'utilisation d'une colonne supplémentaire.


Sub test()
Dim tablo() As Double
Dim mini As Byte
Dim maxi As Byte
Dim i As Byte, j As Byte, k As Byte
Dim temp As Double

mini = 1
maxi = 20

ReDim Preserve tablo(1 To maxi, 1 To 2)

For i = 1 To maxi
        tablo(i, 1) = i
        tablo(i, 2) = Rnd
Next i

For i = 1 To UBound(tablo)
       
For j = 1 To UBound(tablo)
               
If tablo(i, 2) > tablo(j, 2) Then
                       
For k = 1 To 2
                                temp = tablo(i, k)
                                tablo(i, k) = tablo(j, k)
                                tablo(j, k) = temp
                       
Next k
               
End If
       
Next j
Next i
               

For i = 1 To UBound(tablo)
        Cells(i, 1) = tablo(i, 1)
Next i

End Sub


salut
 
Bonjour tout le monde

Il te suffit dans le code de remplacer :

Cells(i, 1) = tablo(i, 1)

par :

Cells(i + 1, 'J') = tablo(i, 1)

cells(ligne, colonne) permet de désigner une cellule par le numéro de ligne, et de colonne.

cells(1,1)= cellule (ligne=1, colonne=1), soit cellule A1.

salut
 
Merci beaucoup hervé ca marche trés bien.

Si je peux me permettre une ultime précision .

Comment adapter la macro si je souhaite imposer une serie de nombre aléatoire dans une liste .

Exemple une liste de 100 lignes contenant des numéros de 1 à 100 en colonne A je souhaite un tirage de 20 nombre aléatoire parmi les 100

en fait il s'asit de la formule alea.entrebornes de 1 à 100 je voudrais en extraire 20 sans doublons

encore merci de votre réactivité.

perdinch
 
- 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

  • Question Question
Microsoft 365 Mozaïque photos
Réponses
17
Affichages
600
Réponses
5
Affichages
214
Réponses
17
Affichages
787
Réponses
16
Affichages
556
Retour