Aide pour améliorer un code

Hpotter

XLDnaute Junior
Bonjour à tous,

J'ai mis en place ce code qui permet d'afficher ou pas des Labels selon le contenu d'une TextBox. Mais comme vous pouvez le constater, il est un peu long et je pense qu'il y a possibilité de l'améliorer.
Pouvez-vous m'aider s'il vous plait ?
Je vous en remercie par avance

VB:
Private Sub TextBox10_Change()
If Me.TextBox10.Text = "" Then
Me.Et1.Visible = False
Me.Et2.Visible = False
Me.Et3.Visible = False
Me.Et4.Visible = False
Me.Et5.Visible = False
End If

If Me.TextBox10.Text = "Très facile" Then
    Me.Et1.Visible = True
End If
If Me.TextBox10.Text = "Facile" Then
    Me.Et1.Visible = True
    Me.Et2.Visible = True
End If
If Me.TextBox10.Text = "Moyen" Then
    Me.Et1.Visible = True
    Me.Et2.Visible = True
    Me.Et3.Visible = True
End If
If Me.TextBox10.Text = "Difficile" Then
    Me.Et1.Visible = True
    Me.Et2.Visible = True
    Me.Et3.Visible = True
    Me.Et4.Visible = True
End If
If Me.TextBox10.Text = "Très difficile" Then
    Me.Et1.Visible = True
    Me.Et2.Visible = True
    Me.Et3.Visible = True
    Me.Et4.Visible = True
    Me.Et5.Visible = True
End If
End Sub
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Un code plus court comme ça par exemple :
VB:
for n = 5 to 1 step -1
   if textbox10.text = choose(n, "Très difficile", "difficile", … ) then exit for
   me("Rt"& n).visible=false:next n
while N>=1:me("Et"& N).visible=true:N=N-1:wend
À tester
 

Hpotter

XLDnaute Junior
Bonjour et merci pour votre réponse.

Dans mon code, "Et1", "Et2", etc... représente des Labels contenant une étoile. Donc si TextBox ="Facile" alors "Et1" donc une étoile et ainsi de suite.
Je ne vois pas dans votre code comment il fait la différence. Cela juste pour ma compréhension personnelle.
Merci par avance
 

Dranreb

XLDnaute Barbatruc
Comment quoi fait la différence avec quoi ? D'abord est-ce que vous avez pu le faire marcher ?
Sinon joignez votre classeur.
Choose(N, liste d'éléments) renvoie le Nième élément de la liste
Donc l'idée c'est d'éliminer tous les cas du plus difficile au plus facile en mettant à False l'EtN.Enabled au passage (tiens j'ai mis RtN, erreur, mais pas de classeur joint pour tester) jusqu'a trouver le bon puis on met tous les EtN.Enabled restants à True à partir de là.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 069
Messages
2 085 041
Membres
102 764
dernier inscrit
nestu