Cocher par le code une checkbox(affichage)

Neophale

XLDnaute Nouveau
Bonjour


je souhaite pouvoir cocher une Checkbox en cliquant dans une listBox et inversement pouvoir sélectionner une ligne dans une listbox en cochant un checkbox


J'ai testé ça

Private Sub CheckBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

For i = 0 To 26
If CheckBox1.Value = True And Me.CheckBox1.Caption = Me.ListBox1.List(i) Then Me.ListBox1.List(i).Value = True
Next i

End Sub


et


Private Sub ListBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
For i = 0 To 26
If Me.ListBox1.List(i).Value = True And Me.CheckBox1.Caption = Me.ListBox1.List(i) Then CheckBox1.Value = True
Next i

End Sub



Cependant aucun changement apparent sur mon userform. Je m'explique quand je clique sur une ligne de ma listbox le checkbox.value =true mais la case reste non cochée.

De même quand je coche la checkbox Me.ListBox1.List(i).Value = True mais la ligne reste blanche et ne se surligne pas en bleu.


Comment faire ?


Merci
 

Banzai64

XLDnaute Accro
Re : Cocher par le code une checkbox(affichage)

Bonjour

Mets ce code à la place

Code:
Private Sub CheckBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  For i = 0 To 26
    If CheckBox1.Value = True And Me.CheckBox1.Caption = Me.ListBox1.List(i) Then Me.ListBox1.Selected(i) = True
  Next i
End Sub

Private Sub ListBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  For i = 0 To 26
    If Me.ListBox1.Selected(i) = True And Me.CheckBox1.Caption = Me.ListBox1.List(i) Then CheckBox1.Value = True
  Next i
End Sub


Bien qu'à mon humble avis l'événement Click est plus approprié pour un CheckBox ou pour un ListBox
 

Neophale

XLDnaute Nouveau
Re : Cocher par le code une checkbox(affichage)

Quand je lance le userform que je coche checkbox1 rien ne se passe en revanche quand je coche et j'appuie 1 seul fois sur F8 comme si lançais la macro pas à pas là l'affichage du userform se met à jour et dans ma listbox la ligne se surligne en bleu.


Edit :
Avec

Private Sub CheckBox1_click()
For i = 0 To 26
If CheckBox1.Value = True And Me.CheckBox1.Caption = Me.ListBox1.List(i) Then Me.ListBox1.Selected(i) = True
Next i
End Sub

Quand je coche checkbox1, dans ma listbox la ligne se surligne en bleu.

Par contre toujours le même problème pour l'inverse avec click ou keyup. Pas moyen d'arriver à afficher la case cocher quand je sélectionne une ligne de ma listbox

Dans ma listbox j'ai 26 lignes et je peux en sélectionner plusieurs
 
Dernière édition:

Neophale

XLDnaute Nouveau
Re : Cocher par le code une checkbox(affichage)

Voila mon Excel

Quand je coche la région Alsace sur la carte Alsace de la liste se surligne en bleu mais pas l'inverse

Pour le moment je n'ai programmé que la checkbox Alsace


Dim TabFeuille As Variant

TabFeuille = Array("Alsace", "Aquitaine", "Auvergne", "Bourgogne", "Bretagne", "Centre", "Champagne-Ardenne", "Corse", "Franche-Comté", "Île-de-France", "Languedoc-Roussillon", "Limousin", "Lorraine", "Midi-Pyrénées", "Nord-Pas-de-Calais", "Basse-Normandie", "Haute-Normandie", "Pays de la Loire", "Picardie", "Poitou-Charentes", "Provence-Alpes-Côte d'Azur", "Rhône-Alpes", "Guadeloupe", "Guyane", "Martinique", "La Réunion")

Me.ListBox1.List = TabFeuille
Me.ListBox1.MultiSelect = fmMultiSelectMulti

Si je supprime la dernière ligne : Me.ListBox1.MultiSelect = fmMultiSelectMulti tout fonctionne Cependant j'ai besoin de cette multi sélection.

Comment faire avec ?
 

Pièces jointes

  • cijw9NpUj1.xls
    8.6 KB · Affichages: 102
Dernière édition:

Discussions similaires

Réponses
17
Affichages
802

Statistiques des forums

Discussions
312 083
Messages
2 085 187
Membres
102 809
dernier inscrit
Sandrine83