Incrementation automatique avec checkbox
Bonjour,
je souhaite mettre en place une incrémentation automatique dés lors que je clic sur une checkbox
j'aurai plusieurs checkbox (une centaine), et dés que je clic sur une checkbox1, le chiffre 1 apparait sur une autre feuil, "Feuil1"
si ensuite je clic sur checkbox2, le chiffre 2 apparait sur la "Feuil2" et ainsi de suite jusque n...
mais si je décoche (par exemple) la checkbox2, et que les autres checkbox sont cochées, c'est la "Feuil3" (correspondant à la checkbox3) qui recevra la valeur 2 et ainsi de suit...
Il faut savoir que j'ai déjà affilié des fonctions à mes checkbox pour d'autres utilisations.
j'ai tenté ce code
Code:
1 2 3 4 5 6 7 8 9
|
Private Sub CheckBox1_Click()
Dim i As Integer
i = 1
ActiveSheet.Shapes("CheckBox" & 1).OLEFormat.Object.Object.Value
Sheets("Feuil1").Range(i).Value = Sheets("Feuil1").Range(i).Value + 1
i = i + 1
End Sub |
Merci de votre aide
1 pièce(s) jointe(s)
Je remercie isabelle pour son code
Bonjour,
Je n'ai pas trop compris ce que tu voulais faire. Voici un code qui te permet d'agir en fonction du checkbox cliqué.
1. tu dois ajouter les références suivantes :
- Microsoft Windows Common Controls 6.0 (SP6)
- Microsoft Forms 2.0 Object Library
2. dans le module "ThisWorkbook", mets le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Dim CheckBoxes() As New MaClasse
Private Sub Workbook_Open()
CreerClasse
End Sub
Public Sub CreerClasse()
Dim sh As Shape, i As Integer
For Each sh In ActiveSheet.Shapes
If Left(sh.Name, 8) = "CheckBox" Then
ReDim Preserve CheckBoxes(i)
Set CheckBoxes(i).ChBx = ActiveSheet.OLEObjects(sh.Name).Object
i = i + 1
End If
Next
End Sub |
3. Insère un module de classe et nomme-le "MaClasse"
Colle dedans le code suivant :
Code:
1 2 3 4 5
| Public WithEvents ChBx As MSForms.CheckBox
Private Sub ChBx_Change()
MsgBox ChBx.Name
End Sub |
C'est tout. Dans cette dernière macro, "ChBx" représente le checkbox qui a été cliqué. Adapte ton codde à la place de :
Je joins un classeur exemple.