Recherche vba

Résolu
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 24 juin 2007 à 21:06
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 25 juin 2007 à 14:22
Bonjour à tous,

Je désire faire une recherche avec 2 critères spécifique.

Voici le script:
<hr size= "2" width="100%" />
Private Sub CommandButton3_Click()

Dim Ligne As Long
If ComboBox49.Value = vbNullString Then
ComboBox49.SetFocus
Else
Application.ScreenUpdating = False

Ligne = RECHERCHE(ComboBox49.Text, 2) And RECHERCHE(TextBox137.Value, 9)

If Ligne = 0 Then Exit Sub
                                 
                                                                                          'Recherche
ComboBox47 = Range("F" & Ligne)
TextBox138 = Range("K" & Ligne)

End If
End Sub
<hr size="2" width="100%" />Le problème est que si je met And RECHERCHE(TextBox137.Value, 9), il ne me donne plus rien.
Si je ne met pas And RECHERCHE(TextBox137.Value, 9), la il me donne des données pour mon Combobox47 et TextBox138.

Me manque t-il quelque chose dans mon script?

Merci de votre aide?

2 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
24 juin 2007 à 22:04
Tu peux utiliser différentes méthodes

1- Un Find comme tu le fais, mais sur une seule colonne, puis vérification de l'autre cellule sur la même ligne. Si les 2 ne concordent pas, FindNext jusqu'à ce que la liste soit toute passée.

2- Une boucle sur chaque ligne avec vérification des 2 cellules.

3- le plus simple à mon avis: tu concatènes les 2 valeurs dans une colonne qui ne sert pas et tu fais ton FIND sur cette colonne. Eh oui... encore la concaténation...

MPi
3
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
25 juin 2007 à 14:22
Merci MPI,

J.ai suivi ton conseil et ça fonctionne.

Voici le script:
<hr size="2" width="100%" />
Dim RECHERCHE As Range, Ligne As Long
'colonne C = numéro concatené
    Set RECHERCHE = Columns("C:C").Find(TextBox270)
    If Not RECHERCHE Is Nothing Then
       Ligne = RECHERCHE.Row
     
       Range("F" & Ligne) = TextBox257
       Range("G" & Ligne) = ComboBox47
       Range("H" & Ligne) = TextBox258
       Range("I" & Ligne) = TextBox259
       Range("J" & Ligne) = ComboBox48
       Range("L" & Ligne) = TextBox138
       Range("M" & Ligne) = TextBox139
       Range("N" & Ligne) = TextBox140
       Range("O" & Ligne) = TextBox141
       Range("P" & Ligne) = TextBox142
   
       End If
<hr size="2" width="100%" />Merci
0
Rejoignez-nous