Excel 2003, ajoutant du contenu avec des cases à cocher

Je propose une gamme avec des lignes utilisant VBA, chaque ligne aura sa propre checkbox.

Jusqu'à présent, le code ressemble à ceci:

Dim objColumnHeadings As Range, objDBsheet As Worksheet Dim lngRow As Long, objCell As Range Dim objCheckbox As Object Set objDBsheet = getDBsheet() Set objColumnHeadings = objDBsheet.Range("ColumnHeadings") objColumnHeadings.ClearContents lngRow = 1 For Each varExisting In objColumns objColumnHeadings.Cells(lngRow, 1).Value = varExisting Set objCell = objColumnHeadings.Cells(lngRow, 2) Set objCheckbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1" _ , Left:=412.8 _ , Top:=objCell.Top _ , Height:=10 _ , Width:=9.6) objCheckbox.Name = "cb" & lngRow objCheckbox.Appearance.Caption = "" objCheckbox.Appearance.BackColor = &H808080 objCheckbox.Appearance.BackStyle = 0 lngRow = lngRow + 1 If lngRow > 1 Then Exit For End If Next 

La définition du nom de la checkbox fonctionne, mais la définition des autres propriétés ne provoque pas une erreur d'exécution: '438', Objet ne supporte pas cette propriété ou cette méthode.

Lorsque je regarde les propriétés des cases nouvellement ajoutées, le nom est défini correctement, mais Legend, BackColor et BackStyle ne sont pas définis.

Comment configurer ces parameters par programme?

Utilisez MSForms.CheckBox , et l' Object Set in it, c'est plus facile. Utilisez le code d'exemple suivant.

 Sub test() Dim objCheckbox As MSForms.CheckBox Set objCheckbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1" _ , Left:=10.8 _ , Top:=10 _ , Height:=25 _ , Width:=200).Object objCheckbox.Name = "Dummy_Test" objCheckbox.Caption = "Test" objCheckbox.BackColor = vbRed objCheckbox.BackStyle = 0 End Sub