en vba sous excel2000

  • Initiateur de la discussion creation et utilisation checkbox
  • Date de début
C

creation et utilisation checkbox

Guest
Bonjour a tous,
je suis debutant en VBA, un j ai un probleme pour gerer les CheckBox dynamiquement voila :
Dans la Feuil1, j ai une cellule nommée N dont la valeur peut variée, j ai un bouton qui doit créer des lignes dans la feuil2 selon la valeur N, pour chaque ligne créer je dois créer des checkbox, pour cela j ai fé une macro associer au bouton.
Cette Macro créer bien mes lignes et mes checkbox, mais mon soucis est que je n arrive pas a recuperer les noms de ces checkbox pour 'agir' dessus, en effet j aimerais bien pouvoir supprimer ces checkbox et les recreer si mon paramtre N change, de plus, lors de la creation de ces checkbox elle doivent etre cocher, je vous met mon code

Merci de m aider

Sub Calcul_Levels()
Dim Obj As OLEObjects
Dim c As CheckBox
level = Range('N')
i = 2
Sheets('Feuil2').Select


Do
j = i + 1
Cells(i, 2) = level
L = Cells(i, 6).Left
T = Cells(i, 6).Top
W = Cells(i, 6).Width
H = Cells(i, 6).Height


With Worksheets(2)
Set lb = .Shapes.AddFormControl(xlCheckBox, L, T, W, H)
End With


i = i + 1
level = level - 1
Loop Until (level = 0 Or level = '')

End Sub
 

MichelXld

XLDnaute Barbatruc
bonjour


il est préférable d'utiliser les objets de la barre d'outils controles


ci joint un exemple pour créer dynaminquement les objets


Sub Calcul_Levels()
Dim Obj As OLEObject
Dim Level As Integer, i As Integer, j As Integer
Dim L As Single, T As Single, W As Single, H As Single

i = 2

For Level = Worksheets(1).Range('N') To 1 Step -1
j = i + 1
Cells(i, 2) = Level
L = Cells(i, 6).Left
T = Cells(i, 6).Top
W = Cells(i, 6).Width
H = Cells(i, 6).Height

Set Obj = Worksheets(2).OLEObjects.Add('Forms.Checkbox.1', _
Left:=L, Top:=T, Height:=H, Width:=W)
Obj.Name = 'Level' & i
i = i + 1
Next Level

End Sub



et ensuite pour boucler sur les Checkbox créés

Sub boucleCheckBoxes()
Dim Obj As OLEObject

For Each Obj In Feuil2.OLEObjects
If TypeOf Obj.Object Is MSForms.CheckBox Then MsgBox Obj.Name
Next Obj
End Sub




bonne journée
MichelXld
 

loran45

XLDnaute Nouveau
Re Bonjour,

J ai compris pas mal de chose grace a votre exemple, mais voila j ai un autre soucis, je n arive pas a cocher automatiquement les check box
j ai essayé Obj.Value = True cela ne marche pas

Je suis desolé de vous embeter encore une fois

Par avance Merci

Loran
 

MichelXld

XLDnaute Barbatruc
rebonjour

tu peux essayer

Obj.Object.Value

ce qui donne


Sub boucleCheckBoxes()
Dim Obj As OLEObject

For Each Obj In Feuil2.OLEObjects
If TypeOf Obj.Object Is MSForms.CheckBox Then Obj.Object.Value = True
Next Obj
End Sub



bonne journée
MichelXld

Message édité par: michelxld, à: 07/02/2006 11:41

Message édité par: michelxld, à: 07/02/2006 11:43
 

MichelXld

XLDnaute Barbatruc
rebonjour Loran

il ne faut pas te désesperer si rapidement...

tu peux tester l'exemple dans le classeur joint


bonne soirée
MichelXld [file name=creationCheckBox.zip size=10930]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/creationCheckBox.zip[/file]

Message édité par: michelxld, à: 07/02/2006 16:54
 

Pièces jointes

  • creationCheckBox.zip
    10.7 KB · Affichages: 23

loran45

XLDnaute Nouveau
Bonjour,

En fait je n ai pas de message d erreur c simplement que les checkboxes ne se cochaient pas par la ligne de commande quer vous m avez passer :
If TypeOf obj2.Object Is MSForms.CheckBox Then obj2.Object.Value = True

mais la j ai fait une copie de la macro faites chez moi (meme ligne de commande j ai rien changer !) et la çà marche (au boulot).
Sinon j ai la meme version d excel 2000, et j ai verifier aussi les niveau de securité mais c est pareil sur les 2.

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 506
Membres
103 566
dernier inscrit
c@b@l77540