Recherche sur 2 tableaux

Calvus

XLDnaute Barbatruc
Bonjour à tous,

J'ai un code me permettant de faire une recherche dans un tableau, d'après une valeur entrée dans un Textbox.
Voici ce code :
VB:
Private Sub TextBox1_Change()
Dim f As Worksheet, f1 As Worksheet, i As Integer, c As Variant
Set f = Sheets("Clients")
Set f1 = Sheets("Prospects")

Range("B:B").Interior.ColorIndex = xlNone
ListBox1.Clear
For Each c In f1.[Prosp[Société]]
If UCase(c) Like "*" & UCase(Me.TextBox1) & "*" Then
Label12 = c.Value
ListBox1.AddItem c.Value
c.Interior.ColorIndex = 20
End If
Next c

End Sub

J'aimerais pourvoir faire la recherche simultanément dans un second tableau, situé dans une autre feuille.
Cela est il possible ?
J'ai tenté d'insérer une boucle dans la 1ère, mais bugs.

J'ai tenté également :
VB:
For Each c In Array("f1.[Prosp[Société]]"," f.[Clients[Société]]")
Mais bugs également.

Je me suis dit que la solution était éventuellement de passer par un tableau vba intermédiaire.
Cela est il juste ?

Merci
 

laetitia90

XLDnaute Barbatruc
re l'ami :):):)
For Each c In Array("f1.[Prosp[Société]]"," f.[Clients[Société]]")tu es pas loin du tout.... array 2 plages defini ou 2 tablos ...par contre il faut bien les définir ...fait une recherche sur google si tu trouves pas regarderais demain


prepare des aspirines :p:p:p sanofi bien sûr
passe une bonne soirée
a+ leti
 

Calvus

XLDnaute Barbatruc
Hello Vous ! :)

par contre il faut bien les définir
C'est normalement bien défini, puisqu'il s'agit de 2 tableaux (Prosp et Clients), et la même colonne est sélectionnée dans chacun d'eux.
Mais j'ai lu qu'il fallait que les 2 tableaux soient de taille identique dans un Array...
Mais je ne pense pas que le problème vienne de là en l'occurrence, car mes 2 tableaux sont identiques pour le moment.
Je vais continuer à chercher dans ce sens alors, et te réserve une Cuvée spéciale Sanofi ! :p:p

Bonne soirée à toi :)
 

Si...

XLDnaute Barbatruc
Salut


Pour une recherche dans 2 tableaux, c’est simple : tu la boucles 2 fois .


Pour un nombre plus élevé tu auras intérêt à passer par un tableau (Array) comme te le suggère si bien ma collègue Læti ;):D.


Tu es devenu un bon client donc, on va pouvoir demander un bonus au BigBoss (un petit voyage d’agrément ne serait pas refusé).
 

Pièces jointes

  • Recherche2tableaux(VBA).xlsm
    26.7 KB · Affichages: 38

Calvus

XLDnaute Barbatruc
Salut Si, bonsoir le forum,

Un ami m'avait donné une solution, quasi identique en utilisant with feuil1 etc... with feuil2 etc...
Ce qui a très bien fonctionné.
Maintenant, en regardant ton code, très semblable au mien finalement, j'ai recopié mon code et l'ai fait bouclé 2 fois. Ce qui fonctionne !
Mais là où ça m'énerve, c'est que j'ai bien fait ça hier avant de poster ! J'ai dû faire une p#*&@/ d'erreur d'inattention qui m'a empêché d'avancer.

Me reste le problème de pouvoir sortir de la procédure si une occurrence a été trouvée dans la 1ère feuille.

Merci donc.
tu la boucles 2 fois .
J'espère que tu parles du code... Je te connais !
passer par un tableau (Array) comme te le suggère si bien ma collègue Læti ;):D.
T'es gonflé ! Parce que j'en ai pas parlé moi de l'array ?!
on va pouvoir demander un bonus au BigBoss (un petit voyage d’agrément ne serait pas refusé).
Tu es le bienvenu, si c'est le BigBoss qui paie ! ;)
 

Calvus

XLDnaute Barbatruc
Re,

Ça fonctionne nickel comme ça.
Ce qui bloquait, c'était cette instruction :
VB:
Set f = Sheets("Clients")
Set f1 = Sheets("Prospects")

For Each c In f1.[Prosp[Société]]
For Each c In f.[Clients[Société]]

Le fait d'avoir directement adressé le nom du tableau sans passer par la feuille a réglé le problème.
Bizarre cet excel !

Si tu as une idée concernant la dernière remarque du post #7....

A+
 

Discussions similaires

Réponses
12
Affichages
245

Statistiques des forums

Discussions
312 192
Messages
2 086 054
Membres
103 109
dernier inscrit
boso_vs_viking