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

Boucle checkbox

ludosipm

XLDnaute Nouveau
Bonjour,

Je débute en VBA et bloque rapidement.
Voici mon problème :

J'ai plusieurs checkbox dans un UserForm. Je souhaite copier les Caption des Checkbox cochées, puis les coller à la suite dans une feuille.

J'ai essayé ceci mais ça ne marche pas correctement :

Sheets("Feuille1").Select
Range("a1").Select

Do While ActiveCell <> ""
ActiveCell.Offset(1, 0).Activate
Loop

If CheckBox1.Value = True Then

ActiveCell.Offset(1, 0) = UserForm.CheckBox1.Caption

End If

If CheckBox2.Value = True Then

ActiveCell.Offset(1, 0) = UserForm.CheckBox2.Caption

End If

ActiveCell.Select






Merci d'avance
 

Creepy

XLDnaute Accro
Re : Boucle checkbox

Bonjour le Forum, Ludosipm,

Créez un userform avec des textbox + un bouton. Coche des textbox au hasard.

Mets ce code dans le bouton :

Code:
Private Sub CommandButton1_Click()
Dim Ctrl As Control

For Each Ctrl In Me.Controls
    If TypeOf Ctrl Is MSForms.CheckBox And Ctrl.Value = True Then
        MsgBox Ctrl.Caption
    End If
Next Ctrl

End Sub

Et voila, on teste tous les contrôles du userform et si c'est une checkbox + cochée alors on affiche sa caption.

A toi d'adapter.

Creepy
 

ludosipm

XLDnaute Nouveau
Re : Boucle checkbox

Merci Creepy d'avoir répondu si vite !

J'ai essayé ta méthode mais j'ai le message d'erreur suivant : "Propriété ou méthode non gérée par cet objet" en désignant cette ligne :

If TypeOf Ctrl Is MSForms.CheckBox And Ctrl.Value = True Then
 

Pierrot93

XLDnaute Barbatruc
Re : Boucle checkbox

Re,

en fonction des types de contrôles présents sur ton usf, faire le test en 2 temps :
Code:
Dim Ctrl As Control
For Each Ctrl In Me.Controls
    If TypeOf Ctrl Is MSForms.CheckBox Then
        If Ctrl.Object.Value = "" Then MsgBox "ok"
    End If
Next Ctrl
 

Pierrot93

XLDnaute Barbatruc
Re : Boucle checkbox

Bonjour,

peut être comme ceci :
Code:
Dim Ctrl As Control
For Each Ctrl In Me.Controls
    If TypeOf Ctrl Is MSForms.CheckBox Then
        If Ctrl.Object.Value = True Then
            Sheets("Feuil1").Range("A65536").End(xlUp)(2).Value = Ctrl.Object.Caption
        End If
    End If
Next Ctrl

bonne journée
@+
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…