recherche difficile

cmbodson

XLDnaute Nouveau
Salutations,

Je fais un test pour comprendre comment fonctionne les recherches.

Sur mon classeur ci-joint, vous trouverez :
de A7 à A11 : des nombres
de B7 à B11 : des lettres
de C7 à C11 : un concatener des deux
de D7 à D11 : une liste de choix (provenant des lignes A24 à A28)
de E7 à E11 : une copie de la colonne C (pour faciliter la position des colonnes dans une rechercheV)

En I1, J1, K1, L1, M1 : le titre des locaux

En I3 : RECHERCHEV sur la donnée A24 dans la matrice D7:E11

Ma question, dans la save, vous constatez que j'ai placé 3 personnes dans le local1, j'aimerais savoir comment on peut les avoir inscrits les uns à la suite des autres dans la colonne I à partir de I3. Prévoyant que 290 lignes peuvent être utilisées dans les colonnes I à M. Exemple : si sur 290 personnes, 28 se trouvent dans le local1, qu'il y ait une liste des 28 noms de I3 à I30

Merci d'avance.
 

Pièces jointes

  • testliste.xls
    25.5 KB · Affichages: 42
  • testliste.xls
    25.5 KB · Affichages: 42
  • testliste.xls
    25.5 KB · Affichages: 43

CISCO

XLDnaute Barbatruc
Re : recherche difficile

Bonjour

Une possibilité en pièce jointe, avec une formule matricielle à valider avec ctrl+maj+entrée.

Je n'ai fait le travail qu'avec les plages de ton exemple. A toi de comprendre la formule et de l'adapter à ton cas réel, avec 290 noms.

@ plus.
 

Pièces jointes

  • testliste.xls
    26.5 KB · Affichages: 46
  • testliste.xls
    26.5 KB · Affichages: 45
  • testliste.xls
    26.5 KB · Affichages: 45

eriiic

XLDnaute Barbatruc
Re : recherche difficile

Bonjour,

J'ai enlévé de ta feuille ce qui servait à rien, et déplacé la liste 'local' dans une autre feuille (garder ce nom, il sert à créer les titres des colonnes des locaux en Feuil1).
Code:
Private Sub BtnLister_Click()
    Dim lig As Long ', lig2 As Long, col2 As Long
    Dim c As Range, erreurs As Long
    Application.ScreenUpdating = False
    ' recup liste locaux
    [E1].Resize(1, [local].Cells.Count) = Application.Transpose([local])
    For lig = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        ' recup colonne local
        Set c = Rows(1).Find(Cells(lig, 3), LookIn:=xlValues, lookat:=xlWhole)
        If c Is Nothing Then
            ' local inconnu
            erreurs = erreurs + 1
            Cells(lig, 3).Interior.ColorIndex = vbRed
        Else
            ' ajouter nom
            Cells(Cells(Rows.Count, c.Column).End(xlUp).Row + 1, c.Column) = Cells(lig, 1) & " " & Cells(lig, 2)
        End If
    Next lig
    Application.ScreenUpdating = True
    If erreurs > 0 Then MsgBox (erreurs & " locaux inconnus surlignés en rouge.")
End Sub

eric
 

Pièces jointes

  • Classeur2.xls
    40 KB · Affichages: 37
  • Classeur2.xls
    40 KB · Affichages: 44
  • Classeur2.xls
    40 KB · Affichages: 40

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : recherche difficile

Bonjour cmbodson,

Voir fichier joint

Une formule H2 à copier vers la droite
Code:
=INDEX(local;COLONNE()+1-COLONNE($H:$H))

Une formule matricielle ( à valider par Ctrl+Maj+Entrée) en H3 à copier vers la droite puis vers le bas
Code:
=SI(ESTERREUR(PETITE.VALEUR(SI($C$7:$C$27=H$2;LIGNE($C$7:$C$27)+1-LIGNE($A$7);"");LIGNE()-2));"";     INDEX($A$7:$A$27;PETITE.VALEUR(SI($C$7:$C$27=H$2;LIGNE($C$7:$C$27)+1-LIGNE($A$7);"");LIGNE()-2)) & " " & INDEX($B$7:$B$27;PETITE.VALEUR(SI($C$7:$C$27=H$2;LIGNE($C$7:$C$27)+1-LIGNE($A$7);"");LIGNE()-2)))

NB : Pas bien réveillé - pas vu que les réponses avaient été apportées - je me recouche :confused:
 

Pièces jointes

  • testliste.xls v1.xls
    57.5 KB · Affichages: 39
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : recherche difficile

Bonjour @ tous,
sur le fichier de mapomme que je salue,
en H3,
Code:
=SI(LIGNES($3:3)<=NB.SI($C$7:$C$20;H$2);INDEX($A$7:$A$20&" "&$B$7:$B$20;PETITE.VALEUR(SI($C$7:$C$20=H$2;LIGNE(INDIRECT("1:"&LIGNES(C$7:C$20))));LIGNES($3:3)));"")
@ valider par Ctrl+Maj+Entree
@ tirer vers le bas et vers la droite
@ micalement
 

cmbodson

XLDnaute Nouveau
Re : recherche difficile

Merci à tous, c'est très sympa. Je vais utiliser le Vba de Eriiiic car la matricielle, c'est trop compliqué pour mes petites compétences, tandis que le Vba m'est plus accessible, même si celui-ci je ne l'aurais jamais trouvé seul.

Merci à Eriiiic qui a trouvé exactement ce que je cherchais. Elle est très bien réalisée, permets d'ajouter autant de ligne ou de colonne (local) que l'on souhaite. Merci.
Au fait, la feuille 3 te sers à quelqu'un chose ? ou puis-je l'effacer ?
 

Discussions similaires

Réponses
10
Affichages
312
Réponses
13
Affichages
529

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz