en vba sous excel2000

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
562
Réponses
2
Affichages
1 K
Réponses
7
Affichages
619
Réponses
3
Affichages
896
Réponses
1
Affichages
685
Retour