OVH Cloud OVH Cloud

Fonction personnalisée "In"

5 réponses
Avatar
Patrick
Bonjour,

J'aimerais créer une fonction personnalisée en VBA (je n'ai pas trouvé son
équivalent en VBA) que j'appellerais "In".
J'aimerais qu'elle fonctionne comme "Is" ou "Like", un peu comme dans du SQL :

If MaVariable In ("A", "B") then
End if

Est-ce possible ?

Merci.

--
Patrick

5 réponses

Avatar
isabelle
bonjour Patrick,

=SI(TROUVE("lo";A1);"VRAI";"FAUX")

ou bien

Var = "zaza"
Set plg = Range("A1")
In = plg Like "*" & Var & "*"

isabelle

Bonjour,

J'aimerais créer une fonction personnalisée en VBA (je n'ai pas trouvé son
équivalent en VBA) que j'appellerais "In".
J'aimerais qu'elle fonctionne comme "Is" ou "Like", un peu comme dans du SQL :

If MaVariable In ("A", "B") then
End if

Est-ce possible ?

Merci.



Avatar
Patrick
Merci Isabelle mais cela fonctionne seulement avec du texte et j'aimerais que
ce soit général, que cela fonctionne aussi avec une série de nombres, par
exemple :

If MaVariable In (1, 3, 10, 22) then
End if

Mais je pourrais créer la fonction avec les paramètres de cette façon :

Function In (Valeur as Variant, Liste as ParamArray) as Boolean

En tous cas, merci.

--
Patrick


"isabelle" wrote:

bonjour Patrick,

=SI(TROUVE("lo";A1);"VRAI";"FAUX")

ou bien

Var = "zaza"
Set plg = Range("A1")
In = plg Like "*" & Var & "*"

isabelle

Bonjour,

J'aimerais créer une fonction personnalisée en VBA (je n'ai pas trouvé son
équivalent en VBA) que j'appellerais "In".
J'aimerais qu'elle fonctionne comme "Is" ou "Like", un peu comme dans du SQL :

If MaVariable In ("A", "B") then
End if

Est-ce possible ?

Merci.






Avatar
isabelle
bonjour Patrick,

si j'ai bien compris, dans ton exemple la réponse est vrai puis que 1 fait partie de 10.
est ce ça ?

isabelle


Merci Isabelle mais cela fonctionne seulement avec du texte et j'aimerais que
ce soit général, que cela fonctionne aussi avec une série de nombres, par
exemple :

If MaVariable In (1, 3, 10, 22) then
End if

Mais je pourrais créer la fonction avec les paramètres de cette façon :

Function In (Valeur as Variant, Liste as ParamArray) as Boolean

En tous cas, merci.



Avatar
JB
Bonjour,

x = "B"
If InStr("A,B", x) > 0 Then
MsgBox "Trouvé"
End If

JB


Bonjour,

J'aimerais créer une fonction personnalisée en VBA (je n'ai pas trouv é son
équivalent en VBA) que j'appellerais "In".
J'aimerais qu'elle fonctionne comme "Is" ou "Like", un peu comme dans du SQL :

If MaVariable In ("A", "B") then
End if

Est-ce possible ?

Merci.

--
Patrick


Avatar
isabelle
Function MonIn(MaValeur As String, ParamArray Liste() As Variant) As String
For Each plg In Liste
If plg Like "*" & MaValeur & "*" Then MonIn = "VRAI"
Next
End Function

isabelle


bonjour Patrick,

si j'ai bien compris, dans ton exemple la réponse est vrai puis que 1
fait partie de 10.
est ce ça ?

isabelle


Merci Isabelle mais cela fonctionne seulement avec du texte et
j'aimerais que ce soit général, que cela fonctionne aussi avec une
série de nombres, par exemple :

If MaVariable In (1, 3, 10, 22) then
End if

Mais je pourrais créer la fonction avec les paramètres de cette façon :

Function In (Valeur as Variant, Liste as ParamArray) as Boolean

En tous cas, merci.