Cette fonction détermine si la valeur (value) passée appartient à la liste (listvalue).
Public Function isIn(value As Variant, listValue As String, _ Optional sep As String = ";") As Boolean '------------------------------------------------------------------------------------ ' Procedure : isIn ' Author : Fabrice CONSTANS (MVP) ' Date : 10/08/2023 ' Purpose : renvoi VRAI si value transmise fait partie de la liste listValue ' Parameters: listValue est une liste d'éléments séparés par sep ' value peut être un élément de la liste listValue ' Return : Boolean ' Copyright : © L'intégralité du code ci-dessous est la propriété de son auteur (Author) ' '------------------------------------------------------------------------------------ Dim tbl As Variant Dim i As Long If isNullOuVide(value) Then Exit Function tbl = Split(listValue, sep) For i = 0 To UBound(tbl) If tbl(i) = CStr(value) Then isIn = True Exit Function End If Next End Function
2 paramètres obligatoires :
- value pour la valeur à chercher
- listvalue pour la liste des valeurs à explorer
1 paramètre facultatif :
- sep pour le séparateur de la liste à explorer.
On l’utilise de cette manière avec le séparateur par défaut.
If isIn(1,"2;5;8;6") Then Msgbox "1 fait bien parti de la liste Else Msgbox "1 ne fait pas parti de la liste" Endif
Ou encore en précisant le séparateur.
mavar = 1 maliste = "1|2|3|8|94|100|15|50" If isIn(mavar, maliste, "|") then Msgbox "1 fait bien parti de la liste Else Msgbox "1 ne fait pas parti de la liste" Endif
Cette fonction peut être modifiée pour traiter le Null. J’ai également créé des variantes avec des Array et ParamArray pour le paramètre listvalue.
Vous utilisez une autre méthode ?
Vous souhaitez échanger sur ce sujet ?
N’hésitez pas à laisser un commentaire.