Excel : RechercheV avec plusieurs valeurs cherchées

A

Anonyme

Invité
Bonjour à tous,

Je bloque sur un problème dans excel.

Le voici :

Sur une même feuille, j'ai une liste d'élèves qui ont chacun un numéro

A B
1 Pierre
2 Paul
3 Jacques
4 Michel

Toujours dans la même feuille, je souhaite afficher les élève absents à un cours grâce à leur numéro.

C D
3 Jacques
1 Pierre


Donc il suffit que je tapes le numéro pour avoir le nom qui s'affiche. J'y arrive grâce à une rechercheV.

Là où je coince, c'est lorsque 2 élèves sont absents.

J'aimerai obtenir ceci :

C
D
1;3
Pierre, Jacques

Je veux donc taper dans une même cellule plusieurs numéros d'élèves et que les noms soient afficher dans la cellules à côté.

Je n'y arrive pas.

Un expert dans la salle ? :siffle:

Merci et bonne journée
 
Dernière édition par un modérateur:

Aliboron

Chercheur de son
Modérateur
Club MacG
1 Janvier 2008
14 160
1 029
Toulouse.cong
faq.office.macintosh.free.fr
Possible qu'il y ait plus simple mais, a priori, je vois ça à l'aide d'une macro VBA événementielle, qui se déclenche automatiquement lors d'une saisie dans la cellule des matricules (en C2 d'après ton exemple) :

Bloc de code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo TheEnd

If Target = Range("C2") Then

    MaListe = ActiveSheet.Range("A2:B5")
    Matricules = ActiveSheet.Range("C2").Value
    NbAbsents = (Len(Matricules) + 1) / 2

    For i = 1 To NbAbsents
        Eleve = Val(Mid(Matricules, (i * 2) - 1, 1))
        LesNoms = WorksheetFunction.VLookup(Eleve, MaListe, 2, False)
       Resultat = Resultat + ", " + LesNoms
    Next i

    Resultat = Right(Resultat, Len(Resultat) - 2)
    ActiveSheet.Range("D2") = Resultat

End If

TheEnd:
End Sub

Les valeurs A2:B5, C2 et D2 sont inspirées de ton exemple mais sont bien entendu à adapter en fonction de la situation réelle..

Mise à jour : j'ai oublié de préciser que la macro événementielle doit être créée sur la feuille de code associée à la feuille de calcul concernée. Normalement ça va de soi, mais parfois ça va mieux en le disant… ;) Attention aussi à séparer les numéros d'un séparateur (peu importe lequel).
 
Dernière édition:
A

Anonyme

Invité
Un tout grand merci, déjà, d'avoir pris la peine de me répondre.

N'étant vraiment pas très doué avec Excel, la fonction rechercheV n'est pas loin de ce que je sais faire de plus compliqué, je ne me sens pas capable d'appliquer ta solution.

Je n'ai jamais touché aux macros et ne sais vraiment pas comment cela fonctionne.

S'il y a moyen avec une fonction classique, cela m'arrangerait mais comme on dit, on ne peut pas avoir le beurre et l'argent du beurre.

Bref, si quelqu'un a un autre chemin à proposer, plus adapté à mon niveau...

Mais encore merci d'avoir pris de ton temps pour m'aider.
 

Pascal 77

ex modéraptor
Club MacG
28 Octobre 2004
44 549
3 553
68
Sous la limite KT
Le problème, c'est que tu veux tout mettre dans la même cellule, or Excel ne dispose pas de fonction de recherche "multi-critères", donc la macro est le seul moyen possible pour parvenir à tes fins. On peut faire beaucoup de choses avec les fonctions de feuille de calcul d'Excel, mais quand même pas tout, et dans ton cas, la seule solution passe par la programmation VBA (VBA, c'est le nom du langage des macros d'Excel/Word, c'est Visual Basix for Applications").