Syncroniser Combobox selon case à cocher

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

  • TEST BIBBIP.xlsm
    60.5 KB · Affichages: 21

ChTi160

XLDnaute Barbatruc
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:

sousou

XLDnaute Barbatruc
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
 

bibbip35

XLDnaute Occasionnel
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
 

sousou

XLDnaute Barbatruc
Re
J'ai finit par renommer tous tes controles !
Voilà ce que ca donne, J'ai dupliqué ton userform pour le refaire et j'ai renommer le tien en ex..
pour que tu puisse comparer
 

Pièces jointes

  • Copie de TEST BIBBIP.xlsm
    65 KB · Affichages: 8

bibbip35

XLDnaute Occasionnel
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
 

ChTi160

XLDnaute Barbatruc
Re
Une adaptation du très bon et fastidieux travail de sousou (Module de Class)
Ce qui permet de supprimer toutes les Procédures d'appel des ComboBox.
Edit : sousou dans ton dernier fichier tu as oublié le c78 pour c708 lol
jean marie
 

Pièces jointes

  • adaptation TEST BIBBIP.xlsm
    62.3 KB · Affichages: 9

Discussions similaires

Réponses
18
Affichages
651
Réponses
5
Affichages
471

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 678
dernier inscrit
arno12345678