Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Trouver une chaine de caractère dans une variable.

6 réponses
Avatar
Syl
Bonjour!

En VBA j'ai une variable qui contient une chaine de caractère.
Ex: a = '' Une aide est toujours bienvenue''
quelle fonction pourrait renvoyer TRUE si le mot recherché est dans la
variable.


Merci!

6 réponses

Avatar
garnote
Bonsoir Syl,

Tentative :

Sub Y_Suis_Je()
a = "Une aide est toujours bienvenue"
mr = "aide"
If InStr(a, mr) <> 0 Then
MsgBox mr & " est dans " & a
Else
MsgBox mr & " n'est pas dans " & a
End If
End Sub

Serge

"Syl" a écrit dans le message de news:
jcwQb.20750$
Bonjour!

En VBA j'ai une variable qui contient une chaine de caractère.
Ex: a = '' Une aide est toujours bienvenue''
quelle fonction pourrait renvoyer TRUE si le mot recherché est dans la
variable.


Merci!




Avatar
Clément Marcotte
bonjour,

Une petite fonction comme cela:

Function cesttula(ouchercher, achercher) As Boolean
cesttula = InStr(ouchercher, achercher) > 0
End Function

ouchercher : le mot ou l'expression sensé contenir le mot que tu
cherches
achercher : le mot ou l'expression que tu recherches.

Pour tester:

Sub recherche()
Dim lemotachercher As String, lemotouchercher As String
Dim reponse As Boolean
lemotouchercher = "Clément Marcotte"
lemotachercher = "Clément"
reponse = cesttula(lemotouchercher, lemotachercher)
MsgBox reponse
End Sub

tu peux aussi mettre instr() directement dans la procédure sub(), cela
fait pareil en moins long.



"Syl" a écrit dans le message de
news:jcwQb.20750$
Bonjour!

En VBA j'ai une variable qui contient une chaine de caractère.
Ex: a = '' Une aide est toujours bienvenue''
quelle fonction pourrait renvoyer TRUE si le mot recherché est dans
la

variable.


Merci!




Avatar
Philippe.R
Bonjour Clément,
tu peux aussi mettre instr() directement dans la procédure sub(), cela
fait pareil en moins long.
J'avais regardé de ce côté, mais, sauf à m'abuser grave, instr() ne renvoie pas une valeur booléenne

mais la position du mot dans la chaîne.
Me gour'je ?
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Clément Marcotte" a écrit dans le message de
news:%
bonjour,

Une petite fonction comme cela:

Function cesttula(ouchercher, achercher) As Boolean
cesttula = InStr(ouchercher, achercher) > 0
End Function

ouchercher : le mot ou l'expression sensé contenir le mot que tu
cherches
achercher : le mot ou l'expression que tu recherches.

Pour tester:

Sub recherche()
Dim lemotachercher As String, lemotouchercher As String
Dim reponse As Boolean
lemotouchercher = "Clément Marcotte"
lemotachercher = "Clément"
reponse = cesttula(lemotouchercher, lemotachercher)
MsgBox reponse
End Sub

tu peux aussi mettre instr() directement dans la procédure sub(), cela
fait pareil en moins long.



"Syl" a écrit dans le message de
news:jcwQb.20750$
Bonjour!

En VBA j'ai une variable qui contient une chaine de caractère.
Ex: a = '' Une aide est toujours bienvenue''
quelle fonction pourrait renvoyer TRUE si le mot recherché est dans
la

variable.


Merci!







Avatar
Clément Marcotte
Bonjour,

Instr() renvoie effectivement la position du mot cherché dans la
chaîne où il est cherché.

D'un autre côté c'est avec cette ligne que l'on retourne finalement
une valeur booléenne:

cesttula = InStr(ouchercher, achercher) > 0

Si la chaîne recherchée est bien présente dans la chaîne de
recherche, alors InStr(ouchercher, achercher) > 0 devient vrai.
Puisque pour VBA, tout nombre différent de 0 (zéro) est équivalent à
un Vrai logique, cesttula devient donc vrai, et retourne True


Si la chaîne recherchée est absente dans la chaîne de recherche,
alors InStr(ouchercher, achercher) retourne 0 (zéro). Pour VBA, 0
(zéro) équivaut à un Faux logique; donc cestula devient faux, et
retourne False.

Disons cependant qu'il faut être prudent avec ce genre de raccourcis;
les BASIC qui traitent pas tous ce genre d' "équivalences" de la même
façon.



"Philippe.R" a écrit dans le message de
news:
Bonjour Clément,
tu peux aussi mettre instr() directement dans la procédure sub(),
cela


fait pareil en moins long.
J'avais regardé de ce côté, mais, sauf à m'abuser grave, instr() ne

renvoie pas une valeur booléenne

mais la position du mot dans la chaîne.
Me gour'je ?
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Clément Marcotte" a écrit dans le
message de

news:%
bonjour,

Une petite fonction comme cela:

Function cesttula(ouchercher, achercher) As Boolean
cesttula = InStr(ouchercher, achercher) > 0
End Function

ouchercher : le mot ou l'expression sensé contenir le mot que tu
cherches
achercher : le mot ou l'expression que tu recherches.

Pour tester:

Sub recherche()
Dim lemotachercher As String, lemotouchercher As String
Dim reponse As Boolean
lemotouchercher = "Clément Marcotte"
lemotachercher = "Clément"
reponse = cesttula(lemotouchercher, lemotachercher)
MsgBox reponse
End Sub

tu peux aussi mettre instr() directement dans la procédure sub(),
cela


fait pareil en moins long.



"Syl" a écrit dans le message de
news:jcwQb.20750$
Bonjour!

En VBA j'ai une variable qui contient une chaine de caractère.
Ex: a = '' Une aide est toujours bienvenue''
quelle fonction pourrait renvoyer TRUE si le mot recherché est
dans



la
variable.


Merci!











Avatar
Philippe.R
Merci Clément
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Clément Marcotte" a écrit dans le message de
news:
Bonjour,

Instr() renvoie effectivement la position du mot cherché dans la
chaîne où il est cherché.

D'un autre côté c'est avec cette ligne que l'on retourne finalement
une valeur booléenne:

cesttula = InStr(ouchercher, achercher) > 0

Si la chaîne recherchée est bien présente dans la chaîne de
recherche, alors InStr(ouchercher, achercher) > 0 devient vrai.
Puisque pour VBA, tout nombre différent de 0 (zéro) est équivalent à
un Vrai logique, cesttula devient donc vrai, et retourne True


Si la chaîne recherchée est absente dans la chaîne de recherche,
alors InStr(ouchercher, achercher) retourne 0 (zéro). Pour VBA, 0
(zéro) équivaut à un Faux logique; donc cestula devient faux, et
retourne False.

Disons cependant qu'il faut être prudent avec ce genre de raccourcis;
les BASIC qui traitent pas tous ce genre d' "équivalences" de la même
façon.



"Philippe.R" a écrit dans le message de
news:
Bonjour Clément,
tu peux aussi mettre instr() directement dans la procédure sub(),
cela


fait pareil en moins long.
J'avais regardé de ce côté, mais, sauf à m'abuser grave, instr() ne

renvoie pas une valeur booléenne

mais la position du mot dans la chaîne.
Me gour'je ?
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Clément Marcotte" a écrit dans le
message de

news:%
bonjour,

Une petite fonction comme cela:

Function cesttula(ouchercher, achercher) As Boolean
cesttula = InStr(ouchercher, achercher) > 0
End Function

ouchercher : le mot ou l'expression sensé contenir le mot que tu
cherches
achercher : le mot ou l'expression que tu recherches.

Pour tester:

Sub recherche()
Dim lemotachercher As String, lemotouchercher As String
Dim reponse As Boolean
lemotouchercher = "Clément Marcotte"
lemotachercher = "Clément"
reponse = cesttula(lemotouchercher, lemotachercher)
MsgBox reponse
End Sub

tu peux aussi mettre instr() directement dans la procédure sub(),
cela


fait pareil en moins long.



"Syl" a écrit dans le message de
news:jcwQb.20750$
Bonjour!

En VBA j'ai une variable qui contient une chaine de caractère.
Ex: a = '' Une aide est toujours bienvenue''
quelle fonction pourrait renvoyer TRUE si le mot recherché est
dans



la
variable.


Merci!














Avatar
Clément Marcotte
De rien ;-)



"Philippe.R" a écrit dans le message de
news:
Merci Clément
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Clément Marcotte" a écrit dans le
message de

news:
Bonjour,

Instr() renvoie effectivement la position du mot cherché dans la
chaîne où il est cherché.

D'un autre côté c'est avec cette ligne que l'on retourne
finalement


une valeur booléenne:

cesttula = InStr(ouchercher, achercher) > 0

Si la chaîne recherchée est bien présente dans la chaîne de
recherche, alors InStr(ouchercher, achercher) > 0 devient vrai.
Puisque pour VBA, tout nombre différent de 0 (zéro) est équivalent
à


un Vrai logique, cesttula devient donc vrai, et retourne True


Si la chaîne recherchée est absente dans la chaîne de recherche,
alors InStr(ouchercher, achercher) retourne 0 (zéro). Pour VBA, 0
(zéro) équivaut à un Faux logique; donc cestula devient faux, et
retourne False.

Disons cependant qu'il faut être prudent avec ce genre de
raccourcis;


les BASIC qui traitent pas tous ce genre d' "équivalences" de la
même


façon.



"Philippe.R" a écrit dans le message de
news:
Bonjour Clément,
tu peux aussi mettre instr() directement dans la procédure
sub(),




cela
fait pareil en moins long.
J'avais regardé de ce côté, mais, sauf à m'abuser grave, instr()

ne



renvoie pas une valeur booléenne
mais la position du mot dans la chaîne.
Me gour'je ?
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Clément Marcotte" a écrit dans
le



message de
news:%
bonjour,

Une petite fonction comme cela:

Function cesttula(ouchercher, achercher) As Boolean
cesttula = InStr(ouchercher, achercher) > 0
End Function

ouchercher : le mot ou l'expression sensé contenir le mot que
tu




cherches
achercher : le mot ou l'expression que tu recherches.

Pour tester:

Sub recherche()
Dim lemotachercher As String, lemotouchercher As String
Dim reponse As Boolean
lemotouchercher = "Clément Marcotte"
lemotachercher = "Clément"
reponse = cesttula(lemotouchercher, lemotachercher)
MsgBox reponse
End Sub

tu peux aussi mettre instr() directement dans la procédure
sub(),




cela
fait pareil en moins long.



"Syl" a écrit dans le message de
news:jcwQb.20750$
Bonjour!

En VBA j'ai une variable qui contient une chaine de
caractère.





Ex: a = '' Une aide est toujours bienvenue''
quelle fonction pourrait renvoyer TRUE si le mot recherché
est





dans
la
variable.


Merci!