OVH Cloud OVH Cloud

Recherche dans chaine de caractere

4 réponses
Avatar
Michelle
Bjr a tous et toutes,

Sous VBA j'ai un petit souci concernant une recherche de=20
caractere dans une cellule. En clair je voudrais savoir si=20
la chaine (exemple) MAR est pr=E9sente dans une cellue=20
quelque soit sa position !!!
Exemple :
Cellule : "Monsieur DUMARSOUIN" doit etre reper=E9e

Merci=20

4 réponses

Avatar
Vincent.
Bonjour,
Regarde du côté de l'opérateur Like
If Chaîne Like "*MAR*"
en fin, de mémoire, l'exemple...
A+

-----Message d'origine-----
Bjr a tous et toutes,

Sous VBA j'ai un petit souci concernant une recherche de
caractere dans une cellule. En clair je voudrais savoir
si

la chaine (exemple) MAR est présente dans une cellue
quelque soit sa position !!!
Exemple :
Cellule : "Monsieur DUMARSOUIN" doit etre reperée

Merci

.



Avatar
papou
Bonjour Michelle
Par exemple :
Sub test()
Dim CarCherche As String, JeCherche As Range
CarCherche = "MAR"
With Sheets("Feuil1").Cells
Set JeCherche = .Find(CarCherche)
If Not JeCherche Is Nothing Then
MsgBox CarCherche & " a été trouvé dans la feuille Feuil1 au
moins sur la cellule " & JeCherche.Address
Else: MsgBox CarCherche & " n'a pas été trouvé dans la
feuille Feuil1"
End If
End With
End Sub

Cordialement
Pascal

"Michelle" a écrit dans le message de
news:1197f01c3f60d$2c157f80$
Bjr a tous et toutes,

Sous VBA j'ai un petit souci concernant une recherche de
caractere dans une cellule. En clair je voudrais savoir si
la chaine (exemple) MAR est présente dans une cellue
quelque soit sa position !!!
Exemple :
Cellule : "Monsieur DUMARSOUIN" doit etre reperée

Merci
Avatar
michdenis
Bonjour Michelle,

Cette façon de faire est insensible à la casse des caractères lors de la comparaison
'-----------------------------------
Sub LaChaine()

Dim Mot As String, Chaine As String
Chaine = Range("A1")
Mot = "MAR"

If InStr(1, Chaine, Mot, vbTextCompare) > 0 Then
MsgBox "oui"
Else
MsgBox "non"
End If

End Sub
'-----------------------------------


L'utilisation de l'opérateur "Like" est sensible à la casse comme le suggère Vincent.

If "DUMARSOUIN" like "*MAR*" then
Msgbox "Ok"
end if


Salutations!


"Michelle" a écrit dans le message de
news:1197f01c3f60d$2c157f80$
Bjr a tous et toutes,

Sous VBA j'ai un petit souci concernant une recherche de
caractere dans une cellule. En clair je voudrais savoir si
la chaine (exemple) MAR est présente dans une cellue
quelque soit sa position !!!
Exemple :
Cellule : "Monsieur DUMARSOUIN" doit etre reperée

Merci
Avatar
Frédéric Sigonneau
Bonsoir,

Une autre approche (nécessite Excel 2000 ou + récent) avec une fonction
personnalisée :

Function IsDedans(S, Chaine, Optional Sensible = False)
If Not Sensible Then
S = LCase(S): Chaine = LCase(Chaine)
End If
IsDedans = UBound(Split(S, Chaine)) > 0
End Function 'fs

Le dernier paramètre détermine si le résultat dépend de la casse (faux par
défaut).
Tu peux utiliser cette fonction dans une feuille de calcul :

=IsDedans(A1;"mar")

ou dans du code VBA :

Sub test()
MsgBox IsDedans(Range("A1").Value, "Mar")
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bjr a tous et toutes,

Sous VBA j'ai un petit souci concernant une recherche de
caractere dans une cellule. En clair je voudrais savoir si
la chaine (exemple) MAR est présente dans une cellue
quelque soit sa position !!!
Exemple :
Cellule : "Monsieur DUMARSOUIN" doit etre reperée

Merci