Rechercher par mot clé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chaelie2015

XLDnaute Accro
Bonjour Forum
je souhaite afficher toutes les résultats par une recherche par mots clé dans une base de donnée
exemple :je cherche le mot clé "s200" dans la colonne D de la feuille "Base de donnée"s
après touts les mots qui contient "s200" s'affichent dans le tableau de la feuille "moteur de recherche".
Salutation
 

Pièces jointes

Bonjour chaelie2015,

Les cellules fusionnées n'acceptent pas les formules matricielles mais on peut ne pas les utiliser avec le nom défini matrice :
Code:
=SI(ESTNUM(CHERCHE('moteur de recherche'!$L$6;'Base de Données'!$D$4:$D$1000));LIGNE('Base de Données'!$D$4:$D$1000))
Formule en B9, à adapter dans les autres colonnes :
Code:
=SIERREUR(INDEX('Base de Données'!F:F;PETITE.VALEUR(matrice;LIGNE()-8));"")
A+
 

Pièces jointes

Re, bonjour Pierre,

Quand on ne cherche que les valeurs la méthode la meilleure ( la plus rapide) est d'utiliser des tableaux VBA :
VB:
Private Sub Worksheet_Activate()
Worksheet_Change [A1] 'lance la macro
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a, ub%, crit$, tablo, resu(), i&, n&, j%
a = Array(1, 6, 7, 11, 12, 16, 15)
ub = UBound(a)
crit = "*" & LCase([D6]) & "*"
With Sheets("Base de Données")
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    tablo = .Range("A1", .Range("D" & .Rows.Count).End(xlUp)).Resize(, Application.Max(a)) 'matrice, plus rapide
End With
'---remplissage de resu---
ReDim resu(UBound(tablo) - 1, ub) 'base 0
For i = 4 To UBound(tablo)
    If crit <> "**" And LCase(tablo(i, 4)) Like crit Then
        For j = 0 To ub
            resu(n, j) = tablo(i, a(j))
        Next j
        n = n + 1
    End If
Next i
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
Application.EnableEvents = False 'désactive les évènements
With [A9]
    If n Then
        .Resize(n, ub + 1) = resu
        .Resize(n, ub + 1).Borders.Weight = xlThin 'bordures
    End If
    .Offset(n).Resize(Rows.Count - n - .Row + 1, ub + 1).Delete xlUp 'RAZ en dessous
End With
Application.EnableEvents = True 'réactive les évènements
End Sub
Bien entendu j'ai supprimé les cellules fusionnées qui ne font que compliquer les choses.

Fichier (2).

A+
 

Pièces jointes

Bonsoir,

C'est un programme standard qu'il suffit de paramétrer.

'--- à adapter
colInterro = Array(1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) ' colonnes à interroger (adapter)
colVisu = Array(1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) ' colonnes à visualiser dans listbox (adapter)


Boisgontier
 
Bonsoir,

C'est un programme standard qu'il suffit de paramétrer.

'--- à adapter
colInterro = Array(1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) ' colonnes à interroger (adapter)
colVisu = Array(1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) ' colonnes à visualiser dans listbox (adapter)


Boisgontier
Bonsoir Jacques
et merci de votre retour , vraiment c'est un outil efficace chapeau a celui qui l a conçu !


Bonne Nuit & Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
757
  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
380
Retour