Syncroniser Combobox selon case à cocher

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 !

bibbip35

XLDnaute Occasionnel
Bonjour à tous

Je cherche a créer une macro dans userform qui permettrait de synchroniser les combobox selon case à cocher

Je m'explique pour essayer d'être plus clair 🙂

1605439813336.png


Si je coche la case à cocher 1 et 3 et 4

Je souhaiterais que si je modifie la combobox 1 de la ligne 46_2020 modifie la combobox correspondant qui a une case cocher
je souhaiterais en faite que les combobox ont un lien entre elle si elle sont cocher .mais par ligne uniquement
Si les cases à cocher sont vides elles devront être indépendantes

Cela me semble compliquer , c'est pourquoi je vous solicite

Dans l'exemple ci-dessous , j'ai sélectionné le schéma horaire Normal qui doit mettre à jour les autre combobox lié

1605440044884.png


Merci encore pour votre aide

Bibbip35
 

Pièces jointes

Bonjour bibbip35
pas évident de comprendre la démarche!
pourrais tu nous expliquer ce que tu veux obtenir par rapport a ce que tu as ?
par l'exemples !
dans ta procédure Initialize de to Userform
j'ai modifié l'affectation de la Plage Source des Combobox 1 à 96
Voilà ce qu'il en reste dans un premier temps!
VB:
Private Sub UserForm_Initialize()
'Désactivation de tous les événements
Application.EnableEvents = False
Set Ws_Source = WorkWs_Source
Mag1.Value = Ws_Source.Range("E4").Value
Mag2.Value = Ws_Source.Range("E5").Value
Mag3.Value = Ws_Source.Range("E6").Value
Mag4.Value = Ws_Source.Range("E7").Value
Mag5.Value = Ws_Source.Range("E8").Value
Mag6.Value = Ws_Source.Range("E9").Value
Mag7.Value = Ws_Source.Range("E10").Value
Mag8.Value = Ws_Source.Range("E11").Value
Mag9.Value = Ws_Source.Range("E12").Value
Mag10.Value = Ws_Source.Range("E13").Value
Mag11.Value = Ws_Source.Range("E14").Value
Mag12.Value = Ws_Source.Range("E15").Value

TabTemp = Ws_Source.Range("A36:A40").Value
With Me
For i = 1 To 96
 .Controls("ComboBox" & i).List = TabTemp
Next i
.ComboBox1.Value = Ws_Source.Range("F4").Value
.ComboBox2.Value = Ws_Source.Range("F5").Value
.ComboBox3.Value = Ws_Source.Range("F6").Value
.ComboBox4.Value = Ws_Source.Range("F7").Value
.ComboBox5.Value = Ws_Source.Range("F8").Value
.ComboBox6.Value = Ws_Source.Range("F9").Value
.ComboBox7.Value = Ws_Source.Range("F10").Value
.ComboBox8.Value = Ws_Source.Range("F11").Value
.ComboBox9.Value = Ws_Source.Range("F12").Value
.ComboBox10.Value = Ws_Source.Range("F13").Value
.ComboBox11.Value = Ws_Source.Range("F14").Value
.ComboBox12.Value = Ws_Source.Range("F15").Value
End With
'Réactivation de tous les événements
Application.EnableEvents = True    
End Sub
jean marie
 
Dernière édition:
Bonjour
Je pense que tu n'est pas très bien parti pour faire un code léger.
Tu devrais commencer par renommer tes controls en fonction de la structure, de façon à pouvoir les adresser en fonctiond e cette dernière.
Exemple:Si ta première checkbox se nomme Check100
Tous les comobobox situé endessous, pourraient ce nommer C100,c101,c102
Pour check200 c200,c201,c2013....
Il serait alors facile de les liés en fonction de leur nom
le chiffre des centaine représentant la colonne, le chiffre des dizaine et unité représentant la ligne

Tes initialisation seraient plus simple et les reste aussi
 
Bonjour

Merci pour vos retour

Ce que je souhaites faire est de liée les combobox entre elles a partir du moment ou la case est coché



Exemple 1 : si je coche la case 1 2 3 4 , je souhaiterais que :

_ la combobox de la colonne 1 2 3 4 de la ligne 1 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 2 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 3 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 4 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 5 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 6 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 7 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 8 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 9 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 10 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 11 soit liée ( égal en cas de changement de valeur )

_ la combobox de la colonne 1 2 3 4 de la ligne 12 soit liée ( égal en cas de changement de valeur )





Exemple 2 : Si je ne coche aucune case , les combobx resterait indépendante …



Merci à tous

Bibbip35
 
Bonjour à vous 2

@ Sousou , vous avez très bien compris la demande !!!

Ça marche bien et en effet vous avez bien simplifier mon code qui était imbitable !

Par contre , j'ai juste un bug sur la première et troisième ligne
La 1er ne fonctionne pas
et la 3ème me génère une erreur excel

1605545167633.png


Merci

Bibbip35
 
- 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
5
Affichages
175
Réponses
1
Affichages
135
Réponses
10
Affichages
202
Réponses
18
Affichages
1 K
Réponses
11
Affichages
1 K
Réponses
2
Affichages
489
Retour