[déplacé VB6 -> VBA] Insertion de CheckBox

Signaler
Messages postés
17
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
16 juillet 2009
-
Messages postés
5
Date d'inscription
vendredi 29 mai 2009
Statut
Membre
Dernière intervention
2 juillet 2009
-
Bonjour à tous,


Je voudrais inserer dans une colonne de la ligne 5 à la fin de mon tableau (dont la ligne correspond à NbreLignes) des checkbox, j'ai donc fait cette macro et ça fonctionne. Par contre c'est assez long donc je voulais savoir si il n'y avait pas un moyen pour que ca aille plus vite (du genre créer toutes les checkbox d'un coup en séléctionnant la plage de cellules cible)
Et aussi, je voudrais qu'elle soit créer en étant déja cochées, mais j'arrive pas a mettre la valeur True dans le code pour que ça soit le cas, quelqu'un pourrait me venir en aide pour ces deux soucis ?


Sub CheckBox()
Dim t, l, i
    
     NbreLignes = Application.CountA(Range("Q1:Q65536")) + 3
     For i = 5 To NbreLignes
    
          Sheets(1).Activate
          Cells(i, 20).Select
          t = ActiveCell.Top
          l = ActiveCell.Left
          ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
               DisplayAsIcon:=False, Left:=l + 2, Top:=t + 2, Width:=10, Height:=10 _
               ).Select
        
      Next i
End Sub

2 réponses

Messages postés
17
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
16 juillet 2009

Désolé je n'arrive pas à mettre a jour mon message donc j'en refais un avec une petite mise a jour de mes questions

Bonjour tout le monde,


J'aurais besoin de votre aide sur trois points.
J'ai créé une macro pour inserer des CheckBox sur toutes les lignes d'un tableau.


1°) Je l'ai fait avec un For et du coup c'est assez long car il y a plus de 1500lignes. Ne peut on pas le faire autrement (genre en selectionnant toutes les cellules d'un coup et en inserant toutes les checkbox en même temps ?)
2°) J'aimerais qu'elles soient insérées en étant cochées (donc True), mais en placant un peu partout un valeur:=True ca n'a rien donné, comme puis-je faire ?
3°) Dans la macro essai() je souhaite copié l'était (vrai ou faux) des checkbox de chaque ligne dans une colonne de chacune des ligne mais cette macro ne marche pas, j'ai du mal nommer les checkbox dans Checkbox() ou mal les appeler dans essai() mais en remuant le truc dans tous les sens je n'ai pas réussi à m'extirper....


Merci par avance pour  votre aide


Sub CheckBox()
Dim t, l, i
    
     NbreLignes = Application.CountA(Range("Q1:Q65536")) + 3
     For i = 5 To 10
    
          Sheets(1).Activate
          Cells(i, 20).Select
          t = ActiveCell.Top
          l = ActiveCell.Left
          Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
               DisplayAsIcon:=False, Left:=l + 30, Top:=t + 2, Width:=10, Height:=10 _
               )
    Obj.Name = "Check" & i


      Next i


End Sub




Sub essai()




For i = 5 To 10


If "Check" & i.Value = True Then
Cells(i, 25) = "OUI"
Else
Cells(i, 25) = "NON"
End If


Next i


End Sub
Messages postés
5
Date d'inscription
vendredi 29 mai 2009
Statut
Membre
Dernière intervention
2 juillet 2009

essaye de voir avec ça, si tu créé un clé te permettant de faire référence à l'objet quand tu fais ton test ça devrait marcher.
http://msdn.microsoft.com/fr-fr/library/a82kxee5.aspx