Nombre au hasard

riquet73 Messages postés 4 Statut Membre -  
 riquet73 -
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
Configuration: Windows XP
Firefox 2.0.0.12

4 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. baladur13 Messages postés 47355 Date d'inscription   Statut Modérateur Dernière intervention   14 400
     
    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
    1. riquet73 Messages postés 4 Statut Membre
       
      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
  3. baladur13 Messages postés 47355 Date d'inscription   Statut Modérateur Dernière intervention   14 400
     
    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
    1. riquet73 Messages postés 4 Statut Membre
       
      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
      1. baladur13 Messages postés 47355 Date d'inscription   Statut Modérateur Dernière intervention   14 400 > riquet73 Messages postés 4 Statut Membre
         
        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
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. riquet73
       
      bonjour à vous tous qui m'avez répondu,

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