Aide pour projet en VB --> rechercheV

Aide pour projet en VB --> rechercheV - VB/VBA/VBS - Programmation

Marsh Posté le 23-01-2004 à 17:46:08    

Bonjour à tous,
j'essaie de faire une gestion de rencontres sous excel en fonction d'une "base de données" (qui est la feuille 1 avec taille, poids, sexe, age, yeux, nom, prenom  etc...) et d'une autre feuille appelée "moteur de recherche". Le problème est que dans cette dernière feuille les fonctions recherchev ne semblent marcher que pour un critère (quand on tape "Bleus" pour les yeux dans la feuille "moteur de recherche" par ex, un seul Nom/Prénom apparait et pas tous les noms existants sur la feuille "base de données" ).
Existe t-il un moyen pour que cela marche, peut etre sous VBA ?  
Merci pour votre aide.

Reply

Marsh Posté le 23-01-2004 à 17:46:08   

Reply

Marsh Posté le 29-01-2004 à 19:42:02    

salut y***es . J'ai le même probleme ;)
ça me saoule là, il faut faire une boucle dans VBA, on dirait que Excel ne prend pas en compte cette fonctionnalité.

Reply

Marsh Posté le 29-01-2004 à 22:18:38    

Voici ce que je trouve pour l'instant :
 
Sub Macro8()
Dim i, j As Integer
 
i = 0
     
While i < 3
 i = i + 1
 j = WorksheetFunction.VLookup(Range("F16" ), Range("base" ), 2)
 Range("F1" & i).Value = j
Wend
   
End Sub
 
 
Malheureusement j'ai 3x la même valeur !!!!

Reply

Marsh Posté le 03-02-2004 à 11:54:05    

il faudrait sans doute modifier la matrice "base" à chaque fois qu'il trouve une valeur correspondant au critére et la faire partir de la ligne d'en-dessous
 
mais bon, ne maitrisant pas VBA, je ne sais pas comment faire...

Reply

Marsh Posté le 04-02-2004 à 08:03:02    

Bonjour,
 
Et pourquoi pas en VBA, une boucle qui va tester dans chaque cellule du critere correspondant si l'information choisi est valable ou non (ce qui te fait oublier toute idee de formule).
 
Dans ta feuille de recherche, tu indiques les critere, puis pour chaque critere selectione, s'il y a un argument, alors ca boucle dans la bonne cellule et ca ressort les resultats, du genre:
 
Sub recherche()
Dim i, j, lgn As Integer
For i = 1 To Sheets("d" ).Cells(1, 1).CurrentRegion.Rows.Count
For j = 1 To 6
If Not IsEmpty(Sheets("r" ).Cells(j + 3, 2)) Then
If Sheets("d" ).Cells(i, j).Value <> _
Sheets("r" ).Cells(j + 3, 2).Value Then GoTo erreur
End If
Next
lgn = Sheets("r" ).Cells(15, 1).CurrentRegion.Rows.Count + 15
Sheets("r" ).Range(Sheets("r" ).Cells(lgn, 1), Sheets("r" ).Cells(lgn, 6)).Value = _
Sheets("d" ).Range(Sheets("d" ).Cells(i, 1), Sheets("d" ).Cells(i, 6)).Value
erreur:
Next
End Sub
 
A toi d'ameliorer et adapater en fonction de l'agencement de tes feuilles et de tes cellules. C'est une recherche multicriteres.
 
Feuille de base de donnees (feuille "d" ) j'ai mis en colonne les info, dans un ordre
Feuille Recherche (feuille "r" ) j'ai mis les critere de recherche en ligne, dans le meme ordre que les colonnes de la base de donnee,
puis les resultats sont affiches dans la feuille r a partir de la ligne 15.
 
Feuille "d":
En colonne:
Taille Poid Sexe Age Nom Prenom
 
Feuille "r":
a partir de la ligne 4 colonne 1, en ligne (les criteres sont rentrer dans la colonne 2:
Taille
Poid
Sexe
Age
Nom
Prenom
 
J'espere t'avoir aide.
 
I.


Message édité par itawa le 04-02-2004 à 08:04:49
Reply

Marsh Posté le 05-02-2004 à 21:12:13    

salut et merci de ton aide. En fait entre temps c'est ce que j'ai fait (enfin à peu pres) et il semble que c'est la meilleure solution ! merci bcp !

Reply

Marsh Posté le 12-07-2005 à 14:28:37    

bonjour,
je suis novice en vba et j'avais besoin d'une aide pour une programmation vba.
Je souhaite effectuer une recherchev en vba, j'ai la fonction sur excel.=recherchev(marge!B2;adv!A:O;15,faux) mais je n'arrive pas à utiler vlookup sur vba. Est-ce que quelq'un pourrait m'aider?
Merci d'avance.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed