Microsoft 365 VBA : Fonction Select Case

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 :confused:
Joyeux réveillon !

patricktoulon

XLDnaute Barbatruc
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
 

TooFatBoy

XLDnaute Barbatruc
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" ???
 

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 154
Membres
112 670
dernier inscrit
Flow87