2009-09-11 6 views
5

ajouter de nombreuses cases à cocher sur la feuille Excel à l'aide programaticaly le code suivant:obtenir les valeurs de toutes les cases à cocher dans Excel à l'aide VBA

With ActiveSheet.CheckBoxes.Add(rCell.Left, rCell.Top, rCell.Width, rCell.Height) 
     .Interior.ColorIndex = xlNone 
     .Caption = "" 
End With 

Maintenant, je besoin d'un code qui analyser à travers toutes les cases à cocher qui sont présents dans la feuille et obtenir leur valeur (vrai ou faux) et aussi la cellule à laquelle ils sont présents. Comment faire?

Merci ...

Répondre

6
Sub Add_CheckBoxes() 

With ActiveSheet.CheckBoxes.Add(ActiveCell.Left, ActiveCell.Top, ActiveCell.Width, ActiveCell.Height) 
    .Interior.ColorIndex = xlNone 
    .Caption = "" 
End With 

For Each chk In ActiveSheet.CheckBoxes 
    If chk Then MsgBox "Checked" 
Next 
End Sub 
+1

Merci pour la réponse! Ça marche! Mais est-il possible de trouver la cellule dans laquelle la case à cocher est présente? – Manoj

+1

Vous ne savez pas si vous pouvez le trouver directement. La case à cocher possède à la fois une propriété Left et une propriété Top représentant sa position. Vous pouvez comparer chk.Left avec la propriété Left de chaque colonne à son tour - ActiveSheet.Columns (1) .Left etc - jusqu'à ce que vous trouviez la correspondance la plus proche, puis répétez pour la propriété Top et chaque rangée à tour de rôle – barrowc

2

Une fois que vous ajoutez les cases à cocher que vous pouvez faire une boucle à travers eux comme ceci:

Sub Checkbox_Test() 

Dim chk As CheckBox 
Dim cell As Range 

For Each chk In ActiveSheet.CheckBoxes 
    If chk.Value = Checked Then  '1 is true, but the constant 
     Set cell = chk.TopLeftCell  ' "Checked" avoids "magic numbers". 

     'do whatever with cell 
     MsgBox cell.Address 
    End If 
Next chk 

End Sub

Questions connexes