selection aléatoire
#1
Accro XLPages

Inscription: 25/11/2008

Messages: 174

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 17-01-2009 08h46
bonjour a tous

dans mon fichiers suivant je voudrais savoir s'il et possible de selectionner une donnée aléatoirement dans chaque colonne de la feuille2 et de les rangés dans les celulles corespondantes de la feuille1.

merci d'avance


Pièce jointe:
xls selection aléatoire.xls   [ Taille: 18.50 Ko - Téléchargements: 667 ]
Hors Ligne
Rapport   Haut 

Re: selection aléatoire
#2
Accro XLPages

Inscription: 23/05/2007
De Chamrousse

Messages: 309

Système d'exploitation:
PC
Version Excel utilisée:
2013
Posté le : 17-01-2009 10h10
Bonjour à tous,

Un essai par formules :
  • ALEA() pour gérer des nombres
  • RECHERCHEV()
  • MAX()
=RECHERCHEV(MAX(Feuil2!B2:B13);Feuil2!B2:C13;2;0)
F9 pour modifier les valeurs

A+ à tous
Pièce jointe:
zip JC selection aléatoire.zip   [ Taille: 5.15 Ko - Téléchargements: 719 ]


Cordialement
Hors Ligne
Rapport   Haut 

Re: selection aléatoire
#3
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 17-01-2009 10h55
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

Hors Ligne
Rapport   Haut 

Re: selection aléatoire
#4
Accro XLPages

Inscription: 25/11/2008

Messages: 174

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 17-01-2009 19h05
rebonjour et merci a JCGL et a jean marie

je fait corespondre 2 celulles cote a cote dans la feuille2 et t'il possible que quand sa m'affiche la celulle choisi en aléatoire sa m'affiche aussi la celulle corespondante a coté sur la feuille1.

merci


Pièce jointe:
xls JC selection aléatoire.xls   [ Taille: 21.50 Ko - Téléchargements: 678 ]
Hors Ligne
Rapport   Haut 

Re: selection aléatoire
#5
Accro XLPages

Inscription: 23/05/2007
De Chamrousse

Messages: 309

Système d'exploitation:
PC
Version Excel utilisée:
2013
Posté le : 17-01-2009 21h27
Bonjour à tous,
Bonjour Jean-Marie,

Regarde le fichier Claude :
  • Agrandissement des plages du RECHERCHEV()
  • Pour le première colonne on met 2 pour la deuxième on met 3 (la plage faisant 3 colonnes et la valeur à checher étaant en colonne 1
La formule de Jean-Marie est plus efficace et permet de s'affranchir des colonnes ALEA() de la feuille 2 (vois fichier JM 2 Col Celection Aleatoire.xls)

A++
A+ à tous
Pièce jointe:
zip JC 2 Col Selection Aleatoire.zip   [ Taille: 5.55 Ko - Téléchargements: 752 ]
zip JM 2 Col Selection Aleatoire.zip   [ Taille: 4.76 Ko - Téléchargements: 687 ]
Edité par JCGL le 17/01/2009 22:23:50


Cordialement
Hors Ligne
Rapport   Haut 

Re: selection aléatoire
#6
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 17-01-2009 22h03
Re...

JC tu as fait une erreur dans le fichier version INDEX. Pour retourner la deuxième valeur adjacente, il ne faut pas utiliser la partie ALEA().

Il faut utiliser la formule.
=INDEX(Feuil2!D1:D12;EQUIV(C6;Feuil2!C1:C13;0);1)

Bonne soirée

@+Jean-Marie 
Hors Ligne
Rapport   Haut 

Re: selection aléatoire
#7
Accro XLPages

Inscription: 23/05/2007
De Chamrousse

Messages: 309

Système d'exploitation:
PC
Version Excel utilisée:
2013
Posté le : 17-01-2009 22h25
Bonjour à tous,

Merci JM
Fichier rectifié dans le message précédent
Il y avait bien un double aléatoire alors que notre ami souhaitait la valeur de la cellule adjacente

A++ 


Cordialement
Hors Ligne
Rapport   Haut 

Re: selection aléatoire
#8
Accro XLPages

Inscription: 25/11/2008

Messages: 174

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 17-01-2009 23h36
merci beaucoup a vous deux

JCGL et jean marie

est-ce que je peut remplacer la touche F9 par un bouton?

et enfin une derniere question a JCGL,me conseil tu d'utiliser la macro de jean marie pour établir mon projet.

merci encore de votres gentillesses
Hors Ligne
Rapport   Haut 

Re: selection aléatoire
#9
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 18-01-2009 10h21
Bonjour Claude, JC

Pour ce qui est de mettre un bouton pour lancer le recalcul des formules dans les classeurs ouverts, place ce code dans un module.
Sub LanceCalcul()
   Application.Calculate
End Sub 
Attention cela ne sert à rien si tu n'as pas spécifié le "calcul sur odre" dans les options d'Excel.

Je n'avais pas adapté le code suite à ta dernière demande, le voici modifié 
Option Explicit
Option Base 1

Sub SelectRnd2()
'Déclaration de deux tableaux
Dim Tab1, Tab2
'Variable Contenant les Bornes limites du Rnd
Const LI = 2
Const LS = 12
'Variable de la boucle
Dim I As Long
'Affecte les valeurs des éléments du tableau
Tab1 = Array("C6:D6", "F9:G9", "J6:K6", "N7:O7")
Tab2 = Array("Cù:Dù", "Fù:Gù", "Iù:Jù", "Lù:Mù")
For I = 1 To UBound(Tab1)
    Tab2(I) = Replace(Tab2(I), "ù", Int((LS * Rnd) + LI))
    Sheets("Feuil1").Range(Tab1(I)).Value = Sheets("Feuil2").Range(Tab2(I)).Value
Next I
End Sub

En ce qui concerne, la question de savoir si tu dois utiliser les formules ou les macros. Je ne pense pas m'avancer en te répondant que nous ne savons pas ce que tu voulais faire avec ton exemple, ni l'objectif de ton projet.

Bon dimanche

@+Jean-Marie

Hors Ligne
Rapport   Haut 

Re: selection aléatoire
#10
Accro XLPages

Inscription: 23/05/2007
De Chamrousse

Messages: 309

Système d'exploitation:
PC
Version Excel utilisée:
2013
Posté le : 18-01-2009 10h46
Bonjour à tous,
Salut JM,

Claude, je n'ai jamais dit que je te conseillais d'utiliser le code de Jean-Marie mais la formule...

La formule de Jean-Marie est plus efficace et permet de s'affranchir des colonnes ALEA() de la feuille 2 (vois fichier JM 2 Col Celection Aleatoire.xls)

Si tu te limites à 4 * 2 colonnes, je te conseille les formules et un bouton pour forcer le recalcul

A+ à tous






Cordialement
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes