Rapport de message :*
 

Re: selection aléatoire

Titre du sujet : Re: selection aléatoire
par JeanMarie le 17/01/2009 10:55:35

Bonjour Claude, Jean-Claude

Je ne sais pas si tu voulais une version Macro ou une version Formule

Je te propose une formule, moins contraignante, elle ne nécessite pas l'ajout de la formule ALEA dans une colonne intermédiaire.

Donc en C6, la formule suivante
=INDEX(Feuil2!C2:C13;ALEA()*11+2;1)
Ensuite tu modifies la plage du premier argument, pour les autres cellules.

Attention, l'utilisation de la fonction ALEA() dans une feuille, provoque à chaque validation du contenu d'une cellule le recalcul des documents ouverts. Ce qui va provoquer un changement systématique des valeurs. C'est comme si l'on appuyait sur la touche F9 ou Cmd+ (mac)

Proposition en VBA cette fois, code à placer dans un module de ton classeur.
Option Explicit
Option Base 1

Sub SelectRnd()
'Variable Contenant les Bornes limites du Rnd
Const LI = 2
Const LS = 12
With Sheets("Feuil1")
    .Range("C6") = Sheets("Feuil2").Range("C" & Int((LS * Rnd) + LI))
    .Range("F9") = Sheets("Feuil2").Range("F" & Int((LS * Rnd) + LI))
    .Range("J6") = Sheets("Feuil2").Range("I" & Int((LS * Rnd) + LI))
    .Range("N7") = Sheets("Feuil2").Range("L" & Int((LS * Rnd) + LI))
End With
End Sub

Sub SelectRnd2()
'Déclaration de deux tableaux
Dim Tab1, Tab2
'Variable Contenant les Bornes limites du Rnd
Const LI = 2
Const LS = 12
'Affecte les valeurs des éléments du tableau
Tab1 = Array("C6", "F9", "J6", "N7")
Tab2 = Array("C", "F", "I", "L")
'Variable de la boucle
Dim I As Long
For I = 1 To UBound(Tab1)
    Sheets("Feuil1").Range(Tab1(I)) = Sheets("Feuil2").Range(Tab2(I) & Int((LS * Rnd) + LI))
Next I
End Sub
Il y a deux versions, la première étant plus simple à comprendre.
La deuxième plus compliquée mais permet plus facilement le rajout d'affectation des cellules sans à avoir à lire tout le code. (c'est mon avis)

Pour pouvoir modifier les valeurs des cellules dans ta feuille, tu dois placer un bouton. Voir le lien ci-dessous.
Tutoriels n° 04 : Associer la macro à un bouton de la barre d'outils ... 

@+Jean-Marie