Générer aléatoirement des cellues; excel

Résolu
Bonjour,

J'aurais besoin d'un peu d'aide sur excel,

Je souhaite créer une marco qui génère (en feuille 1) automatiquement une phrase, à partir d'un tableau base de donnée (en feuille 2).. Par exemple:

Tableau en feuille 2 :

a b c
1 Bob mange une poire
2 JAck avale une pomme
3 Mick goute une fraise

J'aimerais que ma macro génère des phrases au hasard type :

Jack mange une fraise.
ou
Mick avale une poire.

Je sais l'exemple est très bête.

Quelqu'un peut-il m'aider ?

Merci d'avance !!!

4 réponses

  1. Contributeur
    Bonjour
    ici une solution sans macro:
    http://www.cijoint.fr/cjlink.php?file=cj201110/cijlqaOuVK.xls
    crdlmnt
    0
    1. Modérateur
      Bonjour,
      Ton problème, tel qu'il est exposé, peut être résolu par une formule.
      Explications :
      - tes phrases toutes faites, en feuil2 de A1 à A10
      - en feuil1, dans la cellule outu souhaites voir s'afficher aléatoirement une des phrases de la feuil2, saisir :
      =INDEX(Feuil2!A1:A10;ENT(ALEA()*10)+1)
      Pour changer la phrase, il suffit de "recalculer la feuille" : appuie sur F9
      On peux également valider définitivement une proposition initialement aléatoire (figer la cellule) :
      Appuie sur F9 pour "lancer" la formule aléatoire, clic gauche sur la cellule, F2, puis F9, valider par Entrée.
      0
      1. Contributeur
        Salut Pijaku,
        Moi j'avais compris que le demandeur souhaitait composer des phrases en mélangeant les mots?
        on attend pour voir!
        bonne journée. Au plaisir
        crdlmnt
        Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
        0
        1. Modérateur
          Oui! Décidément c'est pas ma journée... J'avais point vu les entêtes de colonne...
          Attendons...
          Bonne journée à toi aussi
          0
      2. Oui, il s'agissait bien de mélanger les mots.

        Finalement, qqun m'a posté cette solution avec macro sur une autre forum :

        Sub test()
        Randomize
        With Feuil2
        Feuil1.Range("A1").Value = .Cells(Int(3 * Rnd) + 1, 1) & " " _
        & .Cells(Int(3 * Rnd) + 1, 2) & " " & .Cells(Int(10 * Rnd) + 1, 3)
        End With
        End Sub

        Ca marche bien.

        Merci à vous tous !!
        Très bonne journée
        0