Vba: serie de nombre aleatoire entre bornes
Résolu
LeMANIMAK
Messages postés
12
Statut
Membre
-
LeMANIMAK Messages postés 12 Statut Membre -
LeMANIMAK Messages postés 12 Statut Membre -
Bonjour,
je voudrai a partir d'un nombre donné ( saisi dans une cellule), générer des entiers de manieres aleatoires. exemple: en saisissant 10, je voudrai afficher aleatoirement les entiers allant de 1 à 10 et sans repetiton.
Sub aleatoire()
Dim ligne As Long
Dim nbre As Long
Randomize
nbre = Range("A3").Value
For ligne = 2 To nbre
Cells(ligne, 3) = Int(nbre * Rnd) + 1
Next ligne
End Sub
Macintosh / Chrome 114.0.0.0
A voir également:
- Vba: serie de nombre aleatoire entre bornes
- Excel compter cellule couleur sans vba - Guide
- Dépassement de capacité vba ✓ - Forum Excel
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
3 réponses
Bonjour
Une solution pour éviter les doublons (il y en a d'autres)
https://www.cjoint.com/c/MGepBYrpyAB
Cdlmnt
Bonjour
Option Explicit Const celn = "$B$2" ' adresse cellule n Const celr = "$A$5" ' adresse première cellule résultat Public Sub ok() Dim k As Long, n As Long Dim t() ' tableau qui contiendra les entiers de 1 à n Dim a As Long, b As Long, c As Long Randomize ' récupération de n n = Range(celn).Value ' dimensionner t et ' remplissage de t avec les entiers de 1 à n ReDim t(1 To n) For k = 1 To n t(k) = k Next k ' on mélange t ' en permutant 3*n fois les lignes a et b de t ' on peut augmenter le nombre de ces permutations ' j'ai mis 3*n pour tester For k = 1 To 3 * n a = 1 + Int(n * Rnd) b = 1 + Int(n * Rnd) c = t(a): t(a) = t(b): t(b) = c Next k ' nettoyage de la plage A5:A10000 Range(celr).Resize(10000, 1).ClearContents ' redimensionner A5 en plage à n lignes et 1 colonne ' et copie de t (transposé : excel considère qu'un tableau ' à une dimension est à 1 ligne) Range(celr).Resize(n, 1) = Application.Transpose(t) End Sub
Cdlmnt
Bonjour ccm81. Solution idouane par contre est-il possible d'avoir des éclairages pour chaque ligne de code afin que je comprenne
Merci d'avance