[VBA][Résolu] Déclarer une constante avec plusieurs occurences

  • Initiateur de la discussion Initiateur de la discussion Nairolf87
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

Nairolf87

Guest
Bonjour,
je cherche à déclarer une constante avec plusieurs occurrences du type :
Code:
Const Compte = "902184", "936205", "964815"
de façon à faire une condition du style :

Code:
If activecell.value = Compte then
Msgbox "Test Ok"
End if

Le but étant que le test IF essaye toutes les valeurs déclarées dans la constante.
 
Dernière modification par un modérateur:
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
A+
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
815
S
Réponses
4
Affichages
2 K
stage_ferrit
S
C
Réponses
3
Affichages
3 K
cheribibi33
C
N
Réponses
5
Affichages
4 K
J
Réponses
0
Affichages
992
joelle2302
J
N
  • Question Question
Réponses
5
Affichages
3 K
M
Réponses
19
Affichages
3 K
M
K
Réponses
30
Affichages
13 K
stefen
S
Retour