Checkbox click évènement

Bonjour le forum,

Je reviens vers vous pour une question peut-être bête mais qui me tracasse depuis 2h.

En fait, j'ai comme vous pouvez le voir dans le fichier joint, une checkbox par ligne.

J'aimerai qu'en cliquant sur une checkbox, cela me surligne ma ligne en gris.

Pour cela j'ai utilisé ce bout de code, que je place dans ma feuille:

Private Sub chk_Click()
Dim nRow As Long

For Each chk In ActiveSheet.CheckBoxes
    If chk.Value = Checked Then
        With ActiveSheet.Shapes(chk).TopLeftCell
        nRow = .Row
        End With
    Range("A" & nRow & ":R" & nRow).Interior.ColorIndex = 15
    End If
Next

End Sub

Malheureusement cela ne marche pas.

En fait, j'aimerai que lorsque je clique dans un checkbox de ma feuille, nimporte lequel, cela me fasse colorer la ligne correspondante à mon checkbox.

Ne connaissant pas le nombre de ligne, je cherche qqch de global bien évidemment.

Est-ce que c'est possible?

Je vous joins mon fichier pour plus de manipulations.

Merci d'avance à vous et bonne journée.

Cordialement,

Xcelpowa

Bonjour

A tester

Bonjour Banzai64,

Merci beaucoup, c'est exactement ce que je souhaitais .

C'est super!

Problème résolu .

Une bonne journée à toi encore.

Cordialement,

xcelpowa

En fait, je suis allé un peu vite en besogne.

Lorsque j'utilise ma macro pour ajouter des checkbox à chaque ligne, cela ne marche plus!

Auriez-vous une explication?

Je précise que la macro que j'utilise pour ajouter les checkbox est la suivante:

Sub CreerCase()
Dim Cellule As Range
Dim x As Long

x = WorksheetFunction.Max(Range("A" & Rows.Count).End(xlUp).Row, Range("B" & Rows.Count).End(xlUp).Row, _
Range("C" & Rows.Count).End(xlUp).Row, Range("D" & Rows.Count).End(xlUp).Row, Range("E" & Rows.Count).End(xlUp).Row, _
Range("F" & Rows.Count).End(xlUp).Row, Range("G" & Rows.Count).End(xlUp).Row, Range("H" & Rows.Count).End(xlUp).Row, _
Range("I" & Rows.Count).End(xlUp).Row, Range("J" & Rows.Count).End(xlUp).Row, Range("K" & Rows.Count).End(xlUp).Row, _
Range("L" & Rows.Count).End(xlUp).Row, Range("M" & Rows.Count).End(xlUp).Row, Range("N" & Rows.Count).End(xlUp).Row, _
Range("O" & Rows.Count).End(xlUp).Row, Range("P" & Rows.Count).End(xlUp).Row, Range("Q" & Rows.Count).End(xlUp).Row, _
Range("R" & Rows.Count).End(xlUp).Row, Range("S" & Rows.Count).End(xlUp).Row)

For Each Cellule In Range("S2:S" & x)

With Cellule
.Select
ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).Select
End With

Next Cellule

End Sub

Là votre code ne marche plus Banzai64.

Comment cela se fait-il?

Merci d'avance à vous.

Bonjour

Essayes ce code

Sub CreerCase()
Dim Cellule As Range
Dim x As Long
Dim Chk As CheckBox

  Application.ScreenUpdating = False
  x = Columns("A:S").Find(what:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

  ' On enlève les éventuelles CheckBox présentes en colonne S (19)
  For Each Chk In ActiveSheet.CheckBoxes
    If Chk.TopLeftCell.Column = 19 Then
      Chk.Delete
    End If
  Next Chk

  For Each Cellule In Range("S2:S" & x)
    With Cellule
      ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height).OnAction = "Lequel"
    End With
  Next Cellule
End Sub

Oh merci beaucoup Banzai64.

C'est juste parfait!

Un grand merci à vous.

Très bonne journée encore!!

Cordialement,

Xcelpowa.

Bonjour,

tu tiens vraiment à t'embêter avec des checkbox sur toutes les lignes ?

Avec un double-clic sur la ligne :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim couleur As Long
    If Target.Row = 1 Then Exit Sub
    Cancel = True
    couleur = IIf(Cells(Target.Row, "A").Interior.ColorIndex = xlNone, 15, xlNone)
    Range("A" & Target.Row).Resize(, 4).Interior.ColorIndex = couleur
End Sub

eric

Bonjour eric,

Effectivement solution bien plus "simple" de manipulation.

Malheureusement, ce fichier n'est as pour moi et je pense qu'il est plus intuitif de cliquer sur une checkbox, qui me permet de "sélectionner ma ligne" et de permettre par après la suppression de cette dernière.

N'empêche que ta méthode me plait bien. Je vais voir si je peux adapter un minimum depuis ta méthode.

Merci bcp en tout cas .

Cordialement,

Xcelpowa

Rechercher des sujets similaires à "checkbox click evenement"