Appel d'une même procédure mais avec différentes variables

Bonjour le forum,

Je sèche un peu concernant les variables...

J'ai un Userform qui comporte 5 Labels.

Chaque Label doit incrémenter sa propre variable et ensuite lancer une procédure en fonction de cette variable

Exemple :

Sub LabActivite_Click()

VarActivite = VarActivite + 1
if VarActivite = 1 then 
'procedure1 a effectuer
elseif VarActivite = 2 then
'procedure2 à effectuer
VarActivite = 0
End if
'Suite de la procédure (identique pour tous)

End Sub

Sub LabSecteur_Click()

VarSecteur = VarSecteur + 1
if VarSecteur = 1 then 
'procedure1 a effectuer
elseif VarSecteur = 2 then
'procedure2 à effectuer
VarSecteur = 0
End if
'Suite de la procédure (identique pour tous)

End Sub

Chaque Label a donc le même code mais pas avec la même variable. Ils ont donc tous quasiment le même long code et je souhaiterais raccourcir tout ça en mettant toute la procédure dans un module à part, du genre :

[code]Sub LabActivite_Click()

VarLabel = Var & "Activite"

Call Procedure

End Sub

Sub LabSecteur_Click()

VarLabel = Var & "Secteur"

Call Procedure

End Sub

Sub Procedure()

if VarLabel = 1 then

'procedure1 a effectuer

elseif VarLabel = 2 then

'procedure2 à effectuer

VarLabel = 0

End if

'Suite de la procédure (identique pour tous)

End Sub

Savez-vous si cela est possible ?

Merci à tous !

Bonjour,

Tu as plusieurs possibilités, voilà 3 exemples :

Sub Test()

Dim VarTxt As String

VarTxt = "Truc"
Call ProcDependante(VarTxt)

End Sub
Sub ProcDependante(LaVariable As String)

Select Case LaVariable
     Case "Truc"
          'procedure1 a effectuer
     Case "Machin"
          'procedure2 à effectuer
End Select
'Suite de la procédure (identique pour tous)

End Sub
Sub Test()

Dim VarTxt As String

VarTxt = "Truc"
Select Case VarTxt
     Case "Truc"
          Call Procedure1
     Case "Machin"
          Call Procedure2
End Select
'Suite de la procédure (identique pour tous)

End Sub
Sub Procedure1
     'procedure1 a effectuer
End Sub
Sub Procedure2
     'procedure2 a effectuer
End Sub
Dim VarTxt As String
Sub Test()

VarTxt = "Truc"
Call ProcDependante()

End Sub
Sub ProcDependante()

Select Case VarTxt
     Case "Truc"
          'procedure1 a effectuer
     Case "Machin"
          'procedure2 à effectuer
End Select
'Suite de la procédure (identique pour tous)

End Sub

Bonjour Pedro22,

Merci pour ces 3 propositions, je vais voir si c'est adaptable à mon code.

J'ai juste peur que cela n'agrandisse encore mon code au lieu de justement l'alléger.

Et merci pour la rapidité !

Je me permet de reposer ma question mais de manière différente:

Admettons que j'ai 1 variable par Label

Option Explicit
Global VarActivite as Byte 'variable unique pour chaque label
Global Nom1 as String
Global Nom2 as String
Global VarTotal as byte
Sub LabelActivite_Click()

VarActivité = 5'Variable différente dans chaque label

Nom1 = "Var"
Nom2= "Activite"
VarTotal = Nom1 & Nom2 'cette variable doit ensuite être utilisée dans une même grosse procédure et doit faire référence à la variable du bon label

Call GrosseProcedure 'qui utilisera VarTotal
End Sub

Cette instruction me renvoie pour VarTotal le mot "VarActivité" or je voudrais que ça me renvoie la valeur 5.

Le fait de "concaténer" Nom1 et Nom2 ne me renvoie pas la variable VarActivité. Excel ne comprend pas que je cherche à récupérer une variable différente en fonction du label sur lequel je clique...

Le Label LabActivité utilise VarActivité

Le Label LabSecteur utilise VarSecteur

Le Label LabEtat utilise VarEtat

etc

Comment est-il donc possible de créer une variable générale qui récupère la variable du label qui a été cliqué ?

Rechercher des sujets similaires à "appel meme procedure differentes variables"