Distribution de nombres dans EXCEL
Résolu
Chonon
Messages postés
1
Statut
Membre
-
LatelyGeek Messages postés 1759 Statut Membre -
LatelyGeek Messages postés 1759 Statut Membre -
Bonjour,
Je cherche à distribuer aléatoirement des nombres, de 1 à 110 par ex, dans autant de lignes, sans doublon.
J'ai essayé la fonction ALEA, mais il faudrait en plus un calcul pour vérifier que dans la colonne le nombre n'existe pas encore...
Des idées ??
Merci !
Je cherche à distribuer aléatoirement des nombres, de 1 à 110 par ex, dans autant de lignes, sans doublon.
J'ai essayé la fonction ALEA, mais il faudrait en plus un calcul pour vérifier que dans la colonne le nombre n'existe pas encore...
Des idées ??
Merci !
A voir également:
- Distribution de nombres dans EXCEL
- Liste déroulante excel - Guide
- Nombre de jours entre deux dates excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
1 réponse
Ben, du VB...
Sub AléatoiresSansDoublon()
'
' AléatoiresSansDoublon Macro
' Macro enregistrée le 07/02/2008 par LatelyGeek
'
'Initialisation du compteur
Dim Compteur As Integer
Compteur = 1
'Premier positionnement
Range("A1").Select
'Boucle
While Compteur <= 110
'Affectation d'un nombre aléatoire compris entre 1 et le nombre de lignes
ActiveCell.FormulaR1C1 = "=INT(RAND()*110)+1"
'Compte sur la même ligne en colonne B du nombre de fois où cette valeur est présente dans la colonne A
ActiveCell.Offset(0, 1).FormulaR1C1 = "=COUNTIF(C[-1],RC[-1])"
'Vérifie si la valeur n'est présente qu'une fois
If ActiveCell.Offset(0, 1).Value = 1 Then
'Si oui, fait un collage spécial, remet la colonne B à blanc, rajoute 1 au compteur et passe à la ligne suivante
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
ActiveCell.Offset(0, 1).FormulaR1C1 = ""
ActiveCell.Offset(1, 0).Select
Compteur = Compteur + 1
End If
'Fin de la boucle
Wend
End Sub
Sub AléatoiresSansDoublon()
'
' AléatoiresSansDoublon Macro
' Macro enregistrée le 07/02/2008 par LatelyGeek
'
'Initialisation du compteur
Dim Compteur As Integer
Compteur = 1
'Premier positionnement
Range("A1").Select
'Boucle
While Compteur <= 110
'Affectation d'un nombre aléatoire compris entre 1 et le nombre de lignes
ActiveCell.FormulaR1C1 = "=INT(RAND()*110)+1"
'Compte sur la même ligne en colonne B du nombre de fois où cette valeur est présente dans la colonne A
ActiveCell.Offset(0, 1).FormulaR1C1 = "=COUNTIF(C[-1],RC[-1])"
'Vérifie si la valeur n'est présente qu'une fois
If ActiveCell.Offset(0, 1).Value = 1 Then
'Si oui, fait un collage spécial, remet la colonne B à blanc, rajoute 1 au compteur et passe à la ligne suivante
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
ActiveCell.Offset(0, 1).FormulaR1C1 = ""
ActiveCell.Offset(1, 0).Select
Compteur = Compteur + 1
End If
'Fin de la boucle
Wend
End Sub