Recherche valeur avec deux critères dans une colonne

Fermé
ccvr - 2 août 2022 à 15:06
 ccvr - 3 août 2022 à 15:41

Bonjour à tous, 

J'ai réalisé un code vba permettant de relever les cellules contenant les valeurs de deux cellules précises.

Ainsi, je relève les cellules qui contiennent les valeurs de la cellule (i,2) et de la cellule (i,3)

val_rech = Cells(i, 2).Value + Cells(i, 3).Value

Cependant, les cellules relevées par mon code sont celles qui contiennent EXACTEMENT ces valeurs et si d'autres informations (avant, après ou même entre les valeurs des 2 cellules )figurent les cellules ne sont pas relevées.

J'aimerai que mon code relève les cellules qui contiennent AU MOINS Cells(i, 2).Value + Cells(i, 3).Value mais pas forcément que ces 2 valeurs.

Admettons :

cells(i,2).Value = petit

cells(i,3).value = bateau 

les cellules contenant "petit bateau" sont relevées mais je souhaite avoir aussi les cellules "petit bateau sur l'eau" ou "le beau petit bateau", par exemple.

je pense que la ligne a modifié est la ligne affectant à val_recherchée la valeur.

Avez vous une idée qui répondrait à ma demande svp ?

Merci ;)

A voir également:

4 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
2 août 2022 à 18:01

Bonjour,

Pouvez montrer le code complet, car val_rech est fonction d'une boucle  a priori, mais pas sur

0

enfaite , le code pour retrouver ou pas la valeur recherchée dans la colonne est réussi et fonctionne. 

Cependant, les valeurs dans la colonne n'ont pas exactement la même mise en forme ( peuvent avoir des données en plus dans la cellule ou alors des espaces en plus/moins). 

Lorsque je mets : val_rech = Cells(i, 2).Value + Cells(i, 3).Value

je n'ai que qques valeurs qui sont trouvées mais pas toutes 

et quand je mets : val_rech = Cells(i, 2).Value & " " & Cells(i, 3).Value

c'est pareil 

je souhaiterai trouver la bonne formule pour exprimer la valeur recherchée " contenant au moins sans compter la mise en forme Cells(i, 2).Value  et Cells(i, 3).Value "

peut être avec le comparateur Like ? je ne sais pas

mon problème est juste la déclarations et l'affectation de valeur recherchée

merci :)

0
ozone_ Messages postés 1518 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 2 juin 2023 478
Modifié le 2 août 2022 à 19:10

Supposons que le texte recherché se trouve dans la cellule A1 alors :

val_rech = Cells(i, 2).Value + Cells(i, 3).Value


If InStr(1, Range("A1"), val_rech) > 0 Then
    Debug.Print "Trouvé !"
Else
    Debug.Print "Pas trouvé ..."
End If

Après effectivement comme le dit f894009, il serait bien de voir le code en complet pour donner une réponse mieux adaptée.


0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
3 août 2022 à 11:11

Bonjour a vous deux,

val_rech  pas possible avec deux criteres flottants

Sub test()
    If Cells(x, y) Like "*" & Cells(i, 2).Value & "*" And Cells(x, y) Like "*" & Cells(i, 3).Value & "*" Then
        'code
    End If
End Sub


 

0

ok merci !

est ce que je peux faire :

If Cells(x, y) Like "*" & Cells(i, 2).Value & "*" And Cells(x, y) Like "*" & Cells(i, 3).Value & "*" Then

       val_rech = Cell(x,y)

       'code

 end If 

0

excel me mets erreur 1004 quand j'ai mofifié la lige avec la votre. ( votre ligne est en jaune)

0

je retire cells(x,y) et je mets cells() et maintenant excel me dit : erreur 7 mémoire insuffisante ...

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
3 août 2022 à 11:46

Re,

Si val_rech n'as pas d'autre affectation, oui

0

ok merci beaucoup !

je vais tester 

0