et pour la mise à jour dynamique, mets quelque part sur la feuille :
=LIGNES(Utilisateurs[Nom])
(éventuellement masquée); dans un module standard (au début) :
Dans le module "thisworkbook" :
1 2 3
| Private Sub Workbook_Open()
NbLignes = [Client!H1]
End Sub |
et dans le module de la feuille :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Private Sub Worksheet_Calculate()
Dim S As Shape
Dim c As Range, Plage As Range
If [H1] <> NbLignes Then
Set Plage = Sheets("Client").ListObjects(1).ListColumns(5).Range
Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 2)
Plage.Select
NbLignes = [H1]
For Each S In ActiveSheet.Shapes
If S.FormControlType = xlCheckBox Then S.Delete
Next S
For Each c In Plage
Set chkbx = ActiveSheet.CheckBoxes.Add(588, c.Top + 0.75, 72.75, 16)
chkbx.LinkedCell = c.Offset(, 3).Address
c.Offset(, 3).Value = False
Next c
End If
End Sub |
Partager