Nombre au hasard

Fermé
riquet73 Messages postés 4 Date d'inscription lundi 1 octobre 2007 Statut Membre Dernière intervention 23 février 2008 - 23 févr. 2008 à 17:22
 riquet73 - 24 févr. 2008 à 10:42
Bonjour,

J'ai un fichier client sous excel qui compte 2500 lignes, il faut que je fasse un questionnaire en tirant au hasard 200 lignes. Pourriez vous me donner une formule me permettant d'obtenir ce résultat.
J'ai office 2003. Merci par avance de votre aide

4 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
23 févr. 2008 à 23:07
Bonsoir,

Voici une methode, à toi de voir si elle te convient.
Dans une colonne vide sur la 1ère ligne qui t'interesse tu saisis =ENT(ALEA()*1000000) que tu recopies vers le bas pour tous les clients.
Ca attribuera un n° aléatoire à chacun, le nombre est choisis élevé pour limiter le risque de doublon.
Il faut figer ces n° maintenant par un copier / collage spécial 'valeur' sur toute la colonne.
Tu tries sur cette colonne et tu prends les 200 premiers.

eric
5
baladur13 Messages postés 46394 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 24 avril 2024 13 219
23 févr. 2008 à 17:31
Bonjour Riquet
Essaye ceci

Syntaxe : ALEA ()

Remarque : Pour générer un nombre réel aléatoire compris entre a et b, utilisez : ALEA()*(b-a)+a.

Exemples : Pour générer un nombre aléatoire entier supérieur ou égal à 1 mais inférieur à 100 : ENT(1+99*ALEA())


Extrait de http://www.grappa.univ-lille3.fr/polys/excel-2000-option2/poly008.html#toc47
voir : le hasard 8.10
1
riquet73 Messages postés 4 Date d'inscription lundi 1 octobre 2007 Statut Membre Dernière intervention 23 février 2008
23 févr. 2008 à 17:34
Bonjour Baladur13,
merci pour cette suggestion que je connaissais déjà. J'aimerai trouver une formule qui, insérée dans mon fichier me permettrait de selectionner 200 lignes au hasard de mon fichier. Saurais tu m'aider?
0
baladur13 Messages postés 46394 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 24 avril 2024 13 219
23 févr. 2008 à 17:40
Non perso je sais pas trop
Je cherches pour toi sur la toile
Regarde le dernier post de ce lien
http://forum.hardware.fr/hfr/WindowsSoftware/Stockage-Sauvegarde/tirage-aleatoire-excel-sujet_160967_1.htm
1
riquet73 Messages postés 4 Date d'inscription lundi 1 octobre 2007 Statut Membre Dernière intervention 23 février 2008
23 févr. 2008 à 18:13
merci balladur13 mais c'est du chinois pour moi
je te remercie pour ton aide, je joins un aperçu de mon fichier
Peux tu m'indiquez le mode opératoire?

Code Client Civilité abrégée Prénom Nom V3 : Complément d'adresse V4 : ligne adresse complète
540100929 M. LIONEL BOURGAU 159 rue du vieux rampart
540102546 M. JEAN GABRIEL CAVARLE
540103317 M. FABRICE BROUZE Chemin DE CHAVENTON
540102144 M. LUDOVIC DUCHENE grande rue
540101379 M. PATRICK GREGGIA Rue STE CATHERINE
540103372 M. STEPHANE PESANTI 29 Allée DU BOIBAN
540102451 M. DOMINIQUE MIGNOT
540102298 M. ALBIN ALVAREZ 81 Allée DES ARTISANS
540100843 M. CATHERINE CACHARD
540102437 M. JEAN LOUP CHATELLARD 35 Allée DES BOULEAUX
540100226 M. GILLES DIGARD
540100555 M. THIERRY JEULLAIN
540101185 M. SEBASTIEN MALVILLE 5
540100750 M. JEAN BAPTISTE MORES
540102828 M. FABIEN PALENI 193 Avenue DE SAVOIE
540102755 M. DOMINIQUE PIERREZ 254 Rue DU BELLACHAT
540101203 M. YOUCEF ZAIBOUCHE bp 9
540103321 M. DONATIEN BAULAT
540100648 M. MARC BOULENGER 7 LE GENEVRIER
540101202 M. CHRISTINE JOURNOT
540101629 M. GERALD ANDRE
540101971 M. JEAN LUC BERARD BERGERY VILLA LE GRAND PRE
540102070 M. DAMIEN CRESSEND 14 Place JOUX
540101966 M. CHRISTOPHE DUCHOSAL 540 Avenue DE TARENTAISE
540102430 M. MARC GOSTOLI 823 Rue DE LA TULIPE
540102332 M. GEOFFREY ROHR 454 Route DE VILLAROLAND
540101008 M. NATHALIE BERTHET la tour
540101258 M. MICHEL CHRISTIN LOT LA MOUDRU
540100439 M. ALAIN COURTIN
540100893 M. PASCAL GARCIA le plan
540103227 M. NICOLAS GRASSI 19 LA MOUDRU
540101790 M. MUARREM KAYGUSUZ Chemin DU MILIEU
540100095 M. GUILLAUME KHIRANI 41 Allée C
540100036 M. GABRIEL MONTESINOS
540101154 M. GERARD MORISSET
540101025 M. TONY SEGUIN Chemin DU PIED DES BOIS
540102457 M. THIERRY AGOGUE 19 Rue LOUIS BLERIOT
0
baladur13 Messages postés 46394 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 24 avril 2024 13 219 > riquet73 Messages postés 4 Date d'inscription lundi 1 octobre 2007 Statut Membre Dernière intervention 23 février 2008
23 févr. 2008 à 18:57
J'ai pigé ton Pb... mais n'ayant excel dans le PC at home... c'est dur de guider.
J'ai contacté un autre membre pour qu'il te guider....
Patience
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
24 févr. 2008 à 00:15
bonjour

à la demande de baladur13, je te mets cette macro qui permet de copier un certain nombre de lignes sélectionnées aléatoirement sur une feuille sur une autre feuille et elle avait été conçue paramétrable.
Donc il faut mettre le nom correct de tes feuilles.
Option Explicit

Sub sélection()
Dim nbr_sel, nbr_elm, nbr_col, choix, pos, lig, i
Dim inf_feu, inf_lig, inf_col
Dim res_feu, res_lig, res_col
nbr_sel = 200 ' le nombre de lignes à récupérer
nbr_col = 20 ' le nombre de colonnes à recopier
inf_lig = 2 ' les données sont en ligne inf_lig
inf_col = 1 ' les données sont en colonne inf_col
inf_feu = "données" ' les données sont sur la feuille inf_feu
res_lig = 1 ' le résultat est en ligne res_lig
res_col = 1 ' le résultat est en colonne res_col
res_feu = "resu" ' le résultat est sur la feuille res_feu
' récupération du nombre de lignes de données
nbr_elm = Worksheets(inf_feu).Cells(inf_lig, inf_col).End(xlDown).Row
' suppression précédente sélection
Worksheets(res_feu).Cells(res_lig, res_col).CurrentRegion.ClearContents

For lig = 0 To nbr_sel - 1
Do
choix = Int(Rnd(1) * nbr_elm) + inf_lig
For i = 0 To lig ' test doubles
If Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value _
= Worksheets(inf_feu).Cells(inf_lig, inf_col).Offset(choix - inf_lig).Value _
Then
Exit For
End If
Next i
Loop Until Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value = ""

' copie des données sélectionnées
Worksheets(res_feu).Cells(res_lig, res_col).Offset(lig).Formula = "=" & inf_feu & "!R" & choix & "C"
Worksheets(res_feu).Cells(res_lig, res_col).Offset(lig).Resize(1, nbr_col).FillRight

Next lig
End Sub

Sur la feuille "resu" ou le nom que tu lui donnera, tu obtiendra les 200 lignes sélectionnées au hasard.
La macro doit être copiée sur la feuille ou dans un module
1
bonjour à vous tous qui m'avez répondu,

je vous remercie pour votre aide, je vais me débrouiller maintenant.
slt
0