Recherche valeur avec deux critères dans une colonne

ccvr -  
 ccvr -

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 ;)

4 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 

Bonjour,

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

0
ccvr
 

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   Statut Membre Dernière intervention   478
 

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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 

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
ccvr
 

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
ccvr
 

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

0
ccvr > ccvr
 

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

0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 

Re,

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

0
ccvr
 

ok merci beaucoup !

je vais tester 

0