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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     

    Bonjour,

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

    0
    1. 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
  2. ozone_ Messages postés 1823 Statut Membre 511
     

    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
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     

    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
    1. 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
    2. ccvr
       

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

      0
      1. ccvr > ccvr
         

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

        0
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     

    Re,

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

    0
    1. ccvr
       

      ok merci beaucoup !

      je vais tester 

      0