Plusieur ligne d'une même cellule

Bonjour,

je souhaiterais savoir s'il est possible de comparer la valeur d'une cellule à plusieurs valeurs présentes sur plusieurs lignes d'une même cellule?

exemple : vérifier si la valeur en A2 se trouve dans une des ligne en A1?

A1

A01111HA

A01092HA

A01090HA

A2

A01020HA

Si ce n'est pas possible je pensais à une autre méthode consistant à ajouter une ligne en dessous comprenant les valeurs de chaque ligne à chaque fois qu'excel trouve une cellule avec plusieurs ligne et ensuite comparer ligne à ligne. Est ce que cela est possible via vba?

exemple :

avant :

A1

A01111HA

A01092HA

A01090HA

aprés :

A1

A01111HA

A2

A01092HA

A3

A01090HA

merci pour votre aide

Bonsoir,

Une cellule à plusieurs lignes, je ne sais pas ce que c'est. Inconnu dans Excel en tout cas !

Une cellule est unique, elle appartient à une ligne et à une colonne.

De toutes façons si les valeurs à tester sont dans une colonne (A par exemple), la valeur cherchée étant en B2):

=NB.SI(A:A;B2) te renverra 0 si elle n'est pas trouvée, le nombre de trouvé sinon.

Si les valeurs à tester sont dans une ligne (1 par exemple):

=NB.SI(1:1;B2) fera la même chose.

Si le but est simplement de savoir si la valeur est trouvée, on poursuit la formule par : >0, et alors la formule affichera VRAI ou FAUX.

Si le but est différent, l'expression peut être incoporée à une formule plus large qui fournira la réponse cherchée.

Cordialement,

Ferrand

Bonjour,

je me suis fais mal comprendre. Ce que j'entend par "cellule à plusieurs lignes" correspondant à une cellule dans laquelle on a été à la ligne avec alt+entrée plusieurs fois. Avec le fichier joint, ma question est de savoir s'il est possible en VBA de faire un code qui vérifie la présence ou non du texte en B1 dans le contenu de A1.

Merci pour votre aide.

capture

Bonjour,

Il s'agit simplement d'une chaîne incluant un ou des caractères de passage à la ligne, à traiter comme n'importe quelle chaîne :

=CHERCHE(B1;A1) renverra une valeur si B1 figure au moins une fois dans A1, mais une valeur d'erreur dans le cas contraire.

Pour tester simplement la présence : =NON(ESTERREUR(CHERCHE(B1;A1)))

NB- Si AH et ah doivent être considérés comme différents, remplacer CHERCHE par TROUVE.

Cordialement

Ferrand


Rebonjour,

Si tu veux connaître le nombre d'occurrences de B1 dans A1 :

[b]=SOMMEPROD((STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)-NBCAR(B1)+1));NBCAR(B1))=B1)*1)

[/b]

A+

Ferrand

Merci pour vos retour. Comment cela peux il se traduire en code VBA?

Par exemple (méthode différente de celle utilisée par la formule :

Sub Cherche()
    Dim chteste, chcherche$, i%, nbtrouve%
    chteste = Split(Range("A1").Value, Chr(10))
    chcherche = Trim(Range("B1").Value)
    For i = 0 To UBound(chteste)
        If StrComp(Trim(chteste(i)), chcherche, vbTextCompare) = 0 Then nbtrouve = nbtrouve + 1
    Next i
    MsgBox ("nb d'occurrences de " & chcherche & " trouvées = " & nbtrouve)
End Sub

Bonne journée

Ferrand

NB- Trim pour le cas où il y aurait des espaces intercalées aux extrémités ou lors de passages à la ligne.

Rechercher des sujets similaires à "ligne meme"