Aide pour améliorer un code

  • Initiateur de la discussion Initiateur de la discussion Hpotter
  • 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 !

H

Hpotter

Guest
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
 
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
 
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
 
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à.
 
- 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
9
Affichages
469
Retour