Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 03/04/2006, 12h23   #1 (permalink)
perdinch
Guest
 
Messages: n/a
Par défaut liste aleatoire sans doublons

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

merci
  Réponse avec citation
ANNONCES
Vieux 03/04/2006, 12h36   #2 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 713
Par défaut Re:liste aleatoire sans doublons

bonjour

j'espere que ce lien pourra t'aider

http://www.excel-downloads.com/forum...ire-unique.htm


bonne journée
MichelXld
MichelXld est déconnecté   Réponse avec citation
Vieux 03/04/2006, 15h53   #3 (permalink)
AV
Guest
 
Messages: n/a
Par défaut Re:liste aleatoire sans doublons

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]
  Réponse avec citation
Vieux 03/04/2006, 16h27   #4 (permalink)
XLDnaute Barbatruc
 
Avatar de Hervé
 
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 420
Par défaut Re:liste aleatoire sans doublons

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.


Citation:
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

ReDimPreserve 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 ToUBound(tablo)
* * * *
For j = 1 ToUBound(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 ToUBound(tablo)
* * * * Cells(i, 1) = tablo(i, 1)
Next i

End Sub

salut
Hervé est déconnecté   Réponse avec citation
Vieux 03/04/2006, 18h08   #5 (permalink)
perdinch
Guest
 
Messages: n/a
Par défaut Re:liste aleatoire sans doublons

merci de votre aide .
  Réponse avec citation
Vieux 03/04/2006, 18h25   #6 (permalink)
perdinch
Guest
 
Messages: n/a
Par défaut Re:liste aleatoire sans doublons

Bonsoir,

Ca marche super !
Mais est il possible de coller le résultat à partir de la cellule J2 au lieu de A1?.

MERCI
  Réponse avec citation
Vieux 03/04/2006, 21h38   #7 (permalink)
XLDnaute Barbatruc
 
Avatar de Hervé
 
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 420
Par défaut Re:liste aleatoire sans doublons

bonsoir

merci de précisez à quel membres tu ecrit.

salut
Hervé est déconnecté   Réponse avec citation
Vieux 03/04/2006, 23h39   #8 (permalink)
perdinch
Guest
 
Messages: n/a
Par défaut Re:liste aleatoire sans doublons

à hervé
  Réponse avec citation
Vieux 04/04/2006, 09h04   #9 (permalink)
XLDnaute Barbatruc
 
Avatar de Hervé
 
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 420
Par défaut Re:liste aleatoire sans doublons

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
Hervé est déconnecté   Réponse avec citation
Vieux 04/04/2006, 19h12   #10 (permalink)
perdinch
Guest
 
Messages: n/a
Par défaut Re:liste aleatoire sans doublons

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
  Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 16h06.


(C) 2006 Excel Downloads