Fonction de recherche

Bonjour,

J'aimerais afficher dans une autre feuille, lors d'une recherche à partir de la valeur "Code AG", toutes les lignes correspondantes.

Je vous transmets mon fichier Excel, c'est un exemple. L'original est beaucoup plus conséquent.

J'ai modifié le fichier joint pour mieux montrer ce que je souhaite faire.

Merci et bonnes fêtes

PS : Je suis novice en la matière et mes recherches n'ont rien donné !

18agences-test.xlsx (14.06 Ko)

Bonjour @ tous,

en E4 :

=SI(LIGNES($4:4)>NB.SI(Tableau!$A$2:$A$17;$B$4);"";INDEX(Tableau!A$2:A$17;EQUIV($B$4;Tableau!$A$2:$A$17;0)+LIGNES($4:4)-1))

@ tirer vers le bas et vers la droite

Attention : il faut mettre la cellule E4 en format Standard avant d'y coller la formule.

@ + +

Bonjour Cycell, Rachid, bonjour le forum,

Après une proposition par formules de l'excellent Rachid (que je salue au passage, Assalahm alaykhoum Rachid) , une autre proposition VBA avec utlisation d'une UserForm dont le code est :

Private O1 As Object 'déclare la variable O1 (Onglet 1)
Private TC As Variant 'déclare la variable TC (Tableau de Cellules)

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim I As Integer 'déclare la variable I (Incrément)
Dim D As Object 'déclare la variable D (Dictionnaire)

Set O1 = Sheets("Feuil1") 'définit l'onglet O1
TC = O1.Range("A1").CurrentRegion 'définit la tableau TC
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 2 To UBound(TC, 1) 'boucle sur toutes les lignes du tableau TC (en partant de la seconde)
    D(TC(I, 1)) = "" 'alimente le dictionaire D avec la valeur en colonne 1 (=> colonne A) du tableau
Next I 'prochaine ligne de la boucle
Me.ComboBox1.List = D.keys 'alimente la ComboBox1 avec la liste du dictionnaire sans doublon
End Sub

Private Sub ComboBox1_Change() 'au changement dans la ComboBox1
Dim O2 As Object 'déclare la variable O2 (Onglet 2)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim K As Byte 'déclare la variable K (incrément)
Dim L As Integer 'déclare la variable L (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau de Lignes)
Dim DEST As Range 'déclare la variable dest

Set O2 = Sheets("Feuil2")
With O2 'prend en compte l'onglet O2
    .Cells.ClearContents 'efface d'éventuelles anciennes données
    O1.Range("a1").Resize(1, 8).Copy O2.Range("A1")
End With 'fin de la prose en compte de l'onglet "Feuil2"
For I = 2 To UBound(TC, 1) 'boucle 1 : sur toutes les lignes du tableau TC (en partant de la seconde)
    If TC(I, 1) = Me.ComboBox1.Value Then 'condition 'si la valeur en colonne 1 (=> colonne A) du tableau TC est égale à la valeur de la ComboBox1
        Set DEST = O2.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
        O1.Cells(I, 1).Resize(1, 8).Copy DEST
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
O2.Select 'sélectionn el'onglet O2
Unload Me 'vide et ferme l'UserForm
End Sub

Le fichier :

14cycell-v01.xlsm (31.51 Ko)

Merci pour vos réponses.

J'ai essayé celle de R@chid, c'est super nickel, merci R@chid.

Je remercie également Thau Thème, mais il faudra me laisser plus de temps pour appréhender VBA.

Merci encore

Bonjour,

ThauThème a écrit :

Bonjour Cycell, Rachid, bonjour le forum,

Après une proposition par formules de l'excellent Rachid (que je salue au passage, Assalahm alaykhoum Rachid)........

Wa Alaykom Assalam

Sinon tout va bien chez vous, ravis de te revoir.

@ + +

Re boujour,

R@chid, j'essai d'appliquer et de comprendre ton code !!! Pas facile

Une explication serait la bienvenue, si ce n'est pas trop te demander.

Merci.

Désolé Cycell de polluer ton fil mais je croisais souvent Rachid sur un autre Forum...

@Rachid : Tout va bien Al-hamdu-lellah et j'espère que pour toi aussi...

ThauThème a écrit :

Désolé Cycell de polluer ton fil mais je croisais souvent Rachid sur un autre Forum...

@Rachid : Tout va bien Al-hamdu-lellah et j'espère que pour toi aussi...

Pas de problème

C'est bon pour moi, j'ai adapter le code de R@chid.

Merci encore

Rechercher des sujets similaires à "fonction recherche"