Re à tous ,
Avec des cases à cocher qui sont créées ou supprimées automatiquement via une macro. Cette proposition devrait être plus conforme à ce que vous désirez.
- Si on ajoute un article en colonne A alors on ajoute une CheckBox dans la colonne C
- Si on efface un article dans la colonne A alors on supprime la Checkbox dans la colonne C
- Si un article existe dans la colonne A et si on modifie cet article (sans le supprimer) alors on ne touche pas à la colonne C
La macro dans le module associé à la feuille "Feuil1" :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim der&, achat, x, n&, chk, adr$, y
If Intersect(Target, Range("a3:a" & Rows.Count)) Is Nothing Then Exit Sub
For Each achat In Intersect(Target, Range("a3:a" & Rows.Count)).Cells
adr = achat.Offset(, 2).Address
If achat = "" Then
For Each x In Me.CheckBoxes
If x.TopLeftCell.Address = adr Then x.Delete
Next x
Else
n = 0
For Each x In Me.CheckBoxes
If x.TopLeftCell.Address = adr Then
n = n + 1
If n > 1 Then x.Delete
End If
Next x
If n = 0 Then
With achat.Offset(, 2)
Set chk = Me.CheckBoxes.Add(.Left, .Top, .Width, .Top)
chk.Caption = ""
chk.Width = 15: chk.Height = 10
chk.Left = .Left + (.Width - chk.Width) / 2
chk.Top = .Top + (.Height - chk.Height) / 2
chk.LinkedCell = .Address(0, 0)
End With
End If
End If
Next achat
End Sub
nota : je ne prends pas en compte la colonne B (montant) pour la gestion des CheckBox. Me le demander si vous le désirez.
edit : version v1a qui corrige un bogue quand on supprime un article.
.