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

L

ludosipm

Guest
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
 
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
 
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
 
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
 
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
@+
 
- 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
4
Affichages
738
Réponses
5
Affichages
917
Retour