CheckBox.Caption ne fonctionne pas

Bonjour à tous,

Je dois réaliser une automatisation de la sélection des données dans un tableau excel (tableau confidentiel), pour cela, j'ai un bouton qui ouvre un UserForm* avec des ChecksBox qui se gênèrent automatiquement en fonction du centre comptable. Il me faudrait récupérer le Caption de ces CheckBox pour ensuite rechercher des données via une RechercheV (les CheckBox ont un Caption = à la premierère case de chaque ligne du tableau de données). Le problème est que je n'arrive pas à récupérer ces Captions, Voici le bout de code concerné :

-------------------------------------------------------------------------------------------------------------------------------

Dim Ctrl As Control, Cpt As Integer
For Each Ctrl In UserForm1.Controls
If TypeOf Ctrl Is MSForms.CheckBox Then Cpt = Cpt + 1
Next Ctrl

Cpt = Cpt - 1

Dim d As Long
For t = 1 To Cpt
If UserForm1.Controls("CheckBox" & t) = True Then
Sheets("bord").Range("J" & d) = UserForm1.Controls("CheckBox" & t).Caption
d = d + 1
End If
Next

-------------------------------------------------------------------------------------------------------------------------------

Si vous voyez une erreur ou autre, merci d'avance (ci-dessous, le UserForm* avec les CheckBox).

capture d ecran 2022 01 20 103903

Bonjour,

La variable d ne peut être égale à 0.

Bonjour,

Comme ça à froid, sans ordi sous les yeux pour vérifier, je n'aurais pas mis de s à controls dans ta condition.

Mais c'est à verifier, je me trompe peut-être.

J'ai essayé de mettre control sans "s", il ne trouve plus l'objet, et avec d = 1 avant la boucle FOR, mais toujours la même erreur..

On dirait bien qu'il n'arrive pas à comprendre qu'il doit chercher le Caption d'une certaine CheckBox

image

Bonjour,

Si j'ai bien compris les CheckBox sont créé dynamiquement.

Déjà je te suggère d'utiliser des optionsbuton qui te permettrait de décocher les cases dès lors que tu en coche une autre !

je te suggère de créer un module de classe avec un objet WithEvents de type optionbuton pour capter l'évènement click

Je retiens la solution pour un projet ultérieur, j'ai oublié de préciser qu'il doit-être possible de sélectionner plusieurs codes analytiques dans le UserForm, c'est pour cela qu'il y a une boucle FOR qui controle toutes les CheckBox = True

Bonjour

je pense que comme ca c'est fonctionnelle

Private Sub CommandButton1_Click()
Dim Ctrl As Control, Cpt As Integer
For Each Ctrl In UserForm1.Controls
If TypeOf Ctrl Is MSForms.CheckBox Then Cpt = Cpt + 1
Next Ctrl

Cpt = Cpt - 1

Dim d As Long
d = 1
For t = 1 To Cpt
If Controls("CheckBox" & t) Then
Sheets("bord").Range("A" & d) = Controls("CheckBox" & t).Caption
d = d + 1
End If
Next
End Sub

a vous relire

Merci beaucoup iliyes ! Cela fonctionne

Cool

valider le post comme résolu

merci

Si tu fournis le code de création des CheckBox je te proposerais ma solution !

Rechercher des sujets similaires à "checkbox caption fonctionne pas"