Fonction de recherche dans trois feuilles

rudymagny

XLDnaute Occasionnel
Bonsoir à tous,
Je reviens encore à la charge sur une autre fonction de recherche que _Thierry m'avait donné sur XLD il y a déjà un petit moment et d'ailleurs je l'en remercie encore car ça m'a bien aidé jusqu'à présent!
Ma problématique est la suivante:
J'ai trois codes de recherche qui se ressembles mais qui ne cherchent pas dans la même feuille:
La recherche "searchTableau1" cherche dans ma feuille Tableau1
La recherche "searchTableau2" cherche dans ma feuille Tableau2
La recherche "searchTableau3" cherche dans ma feuille Tableau3

pour les 2 premières c nickel ça fonctionne!
Par contre la troisième, je rencontre un souci. Le fait est que ma recherche "SearchTableau3" peut ressortir plusieurs résultats contrairement aux deux premières.
Je voudrais que la troisième recherche puisse me ressortir les différents résultats (en sachant que ça ne dapasse pas 2 ou trois)

Par exemple si on cherche "CERGY" il doit ressortir la colonne 1 et 5 du tableau.
Mais je ne vois pas comment faire pour adapter la macro et je ne vois pas non plus comment afficher le résultat (textbox sur deux étages ... ou deux textboxs) je sais pas.

J'espère que je suis clair dans mon baragouin et pour améliorer tout ça je laisse un fichier exemple.

merci à vous.
 

Pièces jointes

  • Question_XLD_SearchTableau_V1.zip
    38 KB · Affichages: 27

rudymagny

XLDnaute Occasionnel
Re : Fonction de recherche dans trois feuilles

Bonjour à tous,
J'ai essayé de modifier le code pour que si on trouve plusieurs résultat (pour info c'est toujours 1 et quelquechose dans la feuille Tableau3) pour que si on trouve 1, il le place dans un "string" lol et qu'il continu la recherche pour trouver s'il n'y a pas d'autres résultats mais je ne pense pas être dans la bonne direction:

Public U_400 As String

'Code de _Thierry sur XLD
Private Function SearchTableau3(ByVal SearchString As String, ByVal Line As Byte) As String
Dim cell As Range
With Worksheets(WSDatabase3).UsedRange
Set cell = .Find(SearchString, LookAt:=xlWhole)
If Not cell Is Nothing Then
SearchTableau3 = .Cells(Line, cell.Column - 0).Value
If SearchTableau3 = "1" Then
U_400 = 1
SearchTableau3 = .Cells(Line, cell.Column - 0).Value
End If
Else
SearchTableau3 = "XX"
End If
End With
End Function

et la j'appel la fonction:

SearchTableau3(TextBox2, 3)

Mais il me sort toujours 1 et pas l'autre cas.

merci
 

rudymagny

XLDnaute Occasionnel
Re : Fonction de recherche dans trois feuilles

Bon j'ai changé d'orientation, Je vais insérer une autre listview et utiliser le type de recherche que ChTi160, Excel_Lent et pierrejean.

Je vais mettre un exemple mais le problème c'est que la recherche ne me donne pas ce que j'attend, j'arrive pas régler le offset .

J'ai essayé pas mal d'offset différents mais j'arrive pas au bon:
Une question le offset se paramètre comme ça:
offset(row, column)?

Si c'est ça j'arrive pas à trouver le bon pour tomber sur la ligne 3 de la même colonne que ma recherche.

merci
 

Pièces jointes

  • Question_XLD_SearchTableau_V2.zip
    33.7 KB · Affichages: 25

rudymagny

XLDnaute Occasionnel
Re : Fonction de recherche dans trois feuilles

Voici un fil que j'ai crée pour rien car j'ai trouvé l'offset qu'il me fallait:

With Sheets("Tableau3").UsedRange
Set C = .Find(Text, LookIn:=xlValues, LookAt:=xlPart)
If Not C Is Nothing Then
Firstaddress = C.Address
Do
'/////ICI
ListView2.ListItems.Add , , .Cells(3, C.Column - 0).Value 'PO
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> Firstaddress
End If
End With

merci quand même
 

Discussions similaires

Réponses
2
Affichages
195
Réponses
2
Affichages
133

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p