Microsoft 365 VBA : Fonction Select Case

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 !

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Bonjour,

Ma question est facile, mais je ne trouve pas de solution.
Quand je lance

Select Case Variable
Case "PR", "TP"

J'obtiens un bon résultat, néanmoins, je souhaite stocker les modalités dans une variables Donnees comme Donnees= "PR" & ", " & "TP", et quand je lance le programme:
Case Donnees

le code ne marche, pas. J'ai essayé aussi Donnees= "PR, TP", le code ne marche pas non plus.

Merci pour votre aide
 
Solution
Bonjour,
Je ne sais pas si j'ai bien compris le problème, mais à tout hasard, perso je fais ça:
VB:
Sub a()
    Const ListeCodes = "PR,TP,XX,YY"
    Dim TabCodes() As String
    Dim Variables As String
   
    TabCodes = Split(ListeCodes, ",")    'LBound = 0
   
    Select Case Variable
        Case TabCodes(0)
            ...
        Case TabCodes(1)
            ...
        Case TabCodes(2)
            ...
        Case TabCodes(3)
            ...
    End Select
End Sub
Merci Dudu2,
cette réponse m'a fait prendre conscience que je n'avais pas du tout compris la question 😕
Joyeux réveillon !
et on peut s'étaler
allez 3 rubriques
le select case pas en dur
VB:
'version1
Const Val1$ = "SX,SP,SY"
Const Val2$ = "AA,DF,SY"
Const Val3$ = "CA,LF,SQ"
Sub Demo1()
    Dim Valeur$, x&

    t = Split(Val1 & "," & Val2 & "," & Val3, ",")   'compil en array

    Valeur = "LF"    'la valeur  à chercher

    x = Application.IfError(Application.Match(Valeur, t, 0), 0)
    Select Case True
    Case x < UBound(t) + 1
        Select Case x
        Case 9: MsgBox "trouvé en position " & x & " dans la rubrique3"
        Case 8: MsgBox "trouvé en position " & x & " dans la rubrique3"
        Case 7: MsgBox "trouvé en position " & x & " dans la rubrique3"
        Case Else: MsgBox "trouvé nulle part3"
        End Select

    Case x < UBound(Split(Val1 & "," & Val2, ",")) + 1    'rubrique2
        Select Case x
        Case 6: MsgBox "trouvé en position " & x & " dans la rubrique2"
        Case 5: MsgBox "trouvé en position " & x & " dans la rubrique2"
        Case 4: MsgBox "trouvé en position " & x & " dans la rubrique2"
        Case Else: MsgBox "trouvé nulle part2"
        End Select

    Case x <= UBound(Split(Val1, ",")) + 1  'rubrique1
        Select Case x
        Case 3: MsgBox "trouvé en position " & x & " dans la rubrique1"
        Case 2: MsgBox "trouvé en position " & x & " dans la rubrique1"
        Case 1: MsgBox "trouvé en position " & x & " dans la rubrique1"
        Case Else: MsgBox "trouvé nulle part1"
        End Select
    End Select
End Sub
 
Bonjour,

VB:
Case 1: MsgBox "trouvé en position " & x & " dans la rubrique1"
Case 2: MsgBox "trouvé en position " & x & " dans la rubrique1"
Case 3: MsgBox "trouvé en position " & x & " dans la rubrique1"
Case 4: MsgBox "trouvé en position " & x & " dans la rubrique1"
Case 5: MsgBox "trouvé en position " & x & " dans la rubrique1"
Juste pour ma culture personnelle : quel est l'intérêt de mettre 5 "Case" ???
 
- 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

Discussions similaires

Réponses
3
Affichages
290
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
773
Réponses
3
Affichages
393
Retour