Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ajout automatique de checkbox

  • Initiateur de la discussion Initiateur de la discussion DRANAC
  • 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 !

D

DRANAC

Guest
Bonjour,

Bonjour,
J'aimerais ajouter automatiquement des checkbox en fonction d'une feuille.
Je calle pour la,mise en page et pour la nomination.
Voila le code :


For i = 1 To 300
If Sheets("MAT").Cells(i, 6).Value = login.Label3 And Sheets("MAT").Cells(i, 5).Value = "" And Sheets("MAT").Cells(i, 1).Value = 1 Then

'CheckBox1.Caption = Sheets("MAT").Cells(i, 7)

For a = 1 To 5
Me.Controls.Add ("forms.checkbox." & a)
'Me.Controls("CheckBox" & a).Caption = Sheets("MAT").Cells(i, a + 6)
Next a
End If

Next i

Merci d'avance
 
Re : Ajout automatique de checkbox

Salut,DRANAC

une ébauche j'espere qu'elle te conviens :

Code:
Sub ajout()
Dim t, l, i
  ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
                  DisplayAsIcon:=False, Left:=80, Top:=80, Width:=10, Height:=10 _
                  ).Select
 i = 1
      Do While Cells(i, 1).Value <> ""
           Workbooks("classeur1").Activate
          Sheets(1).Activate
           Cells(i, 5).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
           i = i + 1
      Loop
End Sub

Cordialement
 
Re : Ajout automatique de checkbox

Bonsoir,
Un peu dans le brouillard tout ça
Ne serait ce pas un formulaire (login.label...)
Dans ce cas
Code:
'...Code qui commence on ne sait où !
    With Sheets("MAT")
        For i = 1 To 300
            If .Cells(i, 6).Value = Login.Label3 And .Cells(i, 5).Value = "" _
            And .Cells(i, 1).Value = 1 Then
            CheckBox1.Caption = .Cells(i, 7)
                For j = 1 To 5  'j'aime pas les a
                    Set CkB = Controls.Add("forms.Checkbox.1")
                        CkB.Left = 10
                        CkB.Top = 50 * j  'au pifomètre
                        CkB.Caption = .Cells(i, j + 6)
                Next j
            End If
        Next i
    End With
'...Code qui finit on ne sait où !
Une autre solution, plutôt que de tâtonner pour placer les Checkbox, c'est de les placer et de ne les rendre visibles que si les critères sont validés.
A+
kjin
 
Re : Ajout automatique de checkbox

Ça marche ... elle est vivante ...
Je m'emballe la !
Un grand merci à vous deux, bizz sur la fesse droite.
J'ai une larme à l'œil quand je vois les petits checkbox qui s'affichent comme des grands tout seul.
C'est énervant d'être nul.
Sur ce, vais continuer à déployer ma nullité.
 
Re : Ajout automatique de checkbox

Donc voila mon code qui "fonctionne" pour l'ajout des checkbox et des CB :

Private Sub UserForm_Initialize()
Z = 1
a = 1
b = 1

For i = 1 To 300

If Sheets("MAT").Cells(i, 6).Value = login.Label3 And Sheets("MAT").Cells(i, 5).Value = "" Then
'on compte le nombre de ligne,
Z = Z + 1

Set CkB = Controls.Add("forms.Checkbox.1")
CkB.Left = 10
CkB.Top = 30 * Z
CkB.Name = b
CkB.Caption = Sheets("MAT").Cells(i, 7)
a = a + 1

For j = 1 To 10

If Sheets("MAT").Cells(i, j + 7) <> "" Then
Set CkB = Controls.Add("forms.Checkbox.1")
CkB.Left = 90 * j + 1
CkB.Top = 30 * Z
CkB.Caption = Sheets("MAT").Cells(i, j + 7)
CkB.Name = a
a = a + 1

End If

Next j

Set bt = Controls.Add("forms.CommandButton.1")
bt.Left = 500
bt.Top = 30 * Z
bt.Name = "cb" & b
bt.Caption = "Validé"

' on nomme les CkB et BT
a = a + 1
b = b + 1
End If

Next i

'on parametre la taille de l'userform en fonction des lignes
With matos_retour
.Width = 600
.Height = Z * 40

End With

End Sub

Comme dirait un pot informaticien " c'est moche, mal foutu, aussi rapide qu'une cafetière mais ça tourne". 😀

Il me reste une question :
Comment ajouter les commandes directement lors de la création du commandbuton ?

Merci d'avance
 
Re : Ajout automatique de checkbox

Après une petite mais non moins profonde réflexion, je suis arrivé à au code suivant pour ajouter une commande vba à mon bouton :

Set bt = Controls.Add("forms.CommandButton.1")
bt.Left = 500
bt.Top = 30 * Z
bt.Caption = bt.Name

Dim code As String

code = "Private Sub " & bt & "_Click()" & vbCrLf
code = code & "MsgBox""coucou""" & vbCrLf
code = code & "End Sub"

Mais bien sur, ca ne va pas et je ne sais pas pourquoi
Comment doit on faire pour donné un code à un objet tel qu'un bouton ???
 
- 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
917
Réponses
15
Affichages
793
Réponses
8
Affichages
789
Réponses
4
Affichages
284
Réponses
4
Affichages
738
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…