Re : [VBA] Déclarer une constante avec plusieurs occurences
Bonjour
Pourrais tu renseigner dans ton profil et dans le titre de ta question quelle version d'excel tu utilises, c'est une information utile quand on te propose une réponse. Merci
Tu ne peux pas faire comme tu le décris. Mais tu peux utiliser une fonction perso et un array qui stocke les valeurs des comptes :
Code:
Public Function IsInArray(ByRef ArrayDeRecherche as Variant, ByVal ValeurCherchée as Value) As Boolean
Dim a
For a = LBound(ArrayDeRecherche) To UBound(ArrayDeRecherche)
If ArrayDeRecherche(a) = ValeurCherchée then
IsInArray = True
Exit For
End If
Next a
End Function
et tu appelles cette fonction depuis ton code
Code:
Dim Tblo
Tblo = Array(902184, 936205, 964815)
If isinarray(activecell.value) then Msgbox "Test Ok"
Re : [VBA] Déclarer une constante avec plusieurs occurences
Merci pour ta réponse rapide mais j'ai le message d'erreur suivant :
"Erreur de compilation : Type défini par l'utilisateur non défini"
Je ne suis pas trop calé pour l'appel de fonction, j'ai essayé de déclarer en public les deux variables Arrayderecherche et Valeurcherchée mais sans succès...
Re : [VBA] Déclarer une constante avec plusieurs occurences
Bonjour,
Le type de l'argument Valeurcherchée est plutôt étonnant
La déclarer en variant, en long, voire pas du tout (ce qui revient à objet)
De plus il manque l'argument tblo dans l'appel de la fonction
Code:
Sub verif()
Dim Tblo
Tblo = Array(902184, 936205, 964815)
If IsInArray(Tblo, ActiveCell.Value) Then MsgBox "Test Ok"
End Sub
Code:
Public Function IsInArray(ByRef ArrayDeRecherche As Variant, ByVal ValeurCherchée As Variant) As Boolean
Dim a
For a = LBound(ArrayDeRecherche) To UBound(ArrayDeRecherche)
If ArrayDeRecherche(a) = ValeurCherchée Then
IsInArray = True
Exit For
End If
Next a
End Function
Autre solution
Code:
Sub verif()
Dim Tblo
Tblo = Array(902184, 936205, 964815)
If Not IsError(Application.Match(ActiveCell.Value, Tblo)) Then MsgBox "Test Ok"
End Sub