userform plusieurs combobox: simplifier code

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 !

max.lander

XLDnaute Occasionnel
Bonjour à tous,

Je m'en remets une nouvelle fois à vous pour simplifier un projet.

En effet, j'utilise un userform contenant 7 combobox, un pour chaque jour de la semaine.
Pour chaque journée, j'ai deux plages horaires (Matin + APM).


En fonction du combobox, je souhaite pouvoir activer ou désactiver les zone horaires.

Si Matin on bloque et grise l'après-midi ainsi de suite.


J'ai créer un bout de code pour la journée 1, le code fonctionne bien mais je trouve très lourd de répéter 7 fois la même chose, la question est simple peut-on simplifier ?

De plus le code est très long pour une opération au final très simple 🙁

Vous trouverez en PJ un fichier exemple.


Merci par avance



VB:
Sub CBox_Journée1()

Selection = Planner.Controls("ComboBox_Journée1").Value


Select Case Selection

Case Is = "Journée"

For i = 1 To 4
Planner.Controls("TextBox_H" & i).Enabled = True
Planner.Controls("TextBox_H" & i).BackColor = &H80000005
Planner.Controls("TextBox_H" & i).Value = ""
Next


Case Is = "Repos"

For i = 1 To 4
Planner.Controls("TextBox_H" & i).Enabled = False
Planner.Controls("TextBox_H" & i).BackColor = &H80000011
Planner.Controls("TextBox_H" & i).Value = ""

Next

Case Is = "RTT"

For i = 1 To 4
Planner.Controls("TextBox_H" & i).Enabled = False
Planner.Controls("TextBox_H" & i).BackColor = &H80000011
Planner.Controls("TextBox_H" & i).Value = ""

Next



Case Is = "Soirée"

For i = 1 To 2
Planner.Controls("TextBox_H" & i).Enabled = False
Planner.Controls("TextBox_H" & i).BackColor = &H80000011
Planner.Controls("TextBox_H" & i).Value = ""

Next


For i = 3 To 4

Planner.Controls("TextBox_H" & i).Enabled = True
Planner.Controls("TextBox_H" & i).BackColor = &H80000005

Next


Case Is = "Après-Midi"

For i = 1 To 2
Planner.Controls("TextBox_H" & i).Enabled = False
Planner.Controls("TextBox_H" & i).BackColor = &H80000011
Planner.Controls("TextBox_H" & i).Value = ""

Next


For i = 3 To 4

Planner.Controls("TextBox_H" & i).Enabled = True
Planner.Controls("TextBox_H" & i).BackColor = &H80000005

Next

Case Is = "Matin"

For i = 1 To 2

Planner.Controls("TextBox_H" & i).Enabled = True
Planner.Controls("TextBox_H" & i).BackColor = &H80000005

Next


For i = 3 To 4

Planner.Controls("TextBox_H" & i).Enabled = False
Planner.Controls("TextBox_H" & i).BackColor = &H80000011
Planner.Controls("TextBox_H" & i).Value = ""

Next




End Select




End Sub
 

Pièces jointes

Bonjour,

J'ai déplacé le code dans le Userform, c'est beaucoup plus facile pour moi que de gérer tout cela via un module.
J'ai changé "Sélection" car, il y avait malencontreusement écriture dans la cellule sélectionnée de la feuille en cours.
À tester si ça te convient...


Jecherche
 

Pièces jointes

Dernière édition:
- 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
2
Affichages
127
Réponses
10
Affichages
630
Réponses
5
Affichages
830
Réponses
8
Affichages
355
Réponses
5
Affichages
548
Réponses
5
Affichages
391
Retour