VBA checkbox et combobox

Avec deux séries.

Tu dis.

le InitCollect ne marche pas chez moi il me renvoi un message d'erreur sur la classe a la ligne :

Private Sub GroupCheck_click()

     Sheets("feuil2").ChangeCombo GroupCheck

End Sub

en me disant "propriété ou méthode non gérée par cet objet " ??

Tu dois recopier le code que j'ai sur le module de la Feuil1 dans le module de TA Feuil2

Public Sub ChangeCombo(Chk As MSForms.CheckBox)
Dim S As String
    S = Right(Chk.Name, 4)
    CollectCB(S).Visible = Chk.Value
End Sub

Public Sub ClickCombo(Combo As MSForms.ComboBox)
    MsgBox "Vous avez cliqué sur le Combo " & Combo.Name & Chr(13) _
    & "sur la ligne " & Combo.ListIndex + 1 & Chr(13) & "Le texte est " & Combo.Text
End Sub

Si tu a mis les boutons faut aussi mettre le code des boutons.

Ou alors... tu à changer le 3 par 4 ? sur cette ligne S = Right(Chk.Name, 4)

Pour Info : quand tu à une erreur sur un code qui est appelé par un module de classe le curseur et l'erreur retourne sur le module de classe bien que l'erreur ne soit pas là.

A+

Un très grand merci a vous lermite pour votre aide précieuse

Dernière petite question comment faire pour récupérer le numéro de la ligne d'une checkbox cochée ???

merci d'avance

Public Sub ChangeCombo(Chk As MSForms.CheckBox)
Dim S As String
Dim Ligne As Long
    Ligne = Val(Right(Chk.Name, 3))
    S = Right(Chk.Name, 4)
    CollectCB(S).Visible = Chk.Value
End Sub

La ligne est dans son nom, idem pour les combo.

A+

Est-ce que ce code est correct ??

Dim obj As OLEObject
Dim ligne As Long

 For Each obj In Sheets("TCD").OLEObjects
       If Left(obj.Name, 3) = "ChQ" Then
             If obj.Object.Value = True Then

                ligne = Val(Right(Chk.Name, 3))
                MsgBox Range("D" & ligne).Value

              End If
       End If
 Next obj

Non, parce que là tu n'a pas d'instance de Chk.

Mais pourquoi tu fait une boucle sur les objets ? ce n'est pas du tout nécessaire.

ben en fait après avoir cocher mes checkbox et choisit l emplacement des arrêts (dans mes combobox ) j'aimerai récupérer l'intitulé de l' arrêt dans mon tcd (cet intitulé se trouve en "D" & ligne) puis le copier dans une autre feuille de mon classeur...

Et tu ne peu pas faire ça directement après avoir fait la sélection dans le ComboBox ?

Public Sub ClickCombo(Combo As MSForms.ComboBox)
Dim Ligne As Long
    Ligne = Val(Right(Combo.Name, 3))
    Sheets("Machin").Cells(X, Y) = Cells(Ligne, "D")

  '  MsgBox "Vous avez cliqué sur le Combo " & Combo.Name & Chr(13) _
  '  & "sur la ligne " & Combo.ListIndex + 1 & Chr(13) & "Le texte est " & Combo.Text
End Sub

En adaptant bien entendu.

ben en fait je préfère le faire après avoir fini la saisie de tous mes combobox ( en associant ceci un bouton) de plus c'est plus flexible au cas où il y aurait une saisie erronée...

Je ne me rappelais plus bien comment faire, mais plus de problème.

Reprend la procédure InitCollect j'ai du y faire quelque changement.

Et dans le code du bouton que j'ai ajouté je pense que tu a tout ce qu'il faut.

A+

c'est normal que ça marche pas ??

JuJuK a écrit :

c'est normal que ça marche pas ??

Non bien sûr..

Ahhh les arcanes et mystères d'Excel.

J'ai encore fait tite modif dans InitCollect.

Mais hésite pas.. si problème tu bip..

EDIT : pour ceux que ça intéresse...

Excel fait une différence entre les propriétés héritées de tout les contrôles comme Visible, Name, Height, top etc..

et les propriétés propre au contrôle comme dans le cas d'un ComboBox ListIndex, Texte, ListCount etc..

C'est la première fois que j'emploi LES DEUX STYLES DE PROPRIÉTÉS EN MÊME TEMPS et je n'avais pas remarqué cette différence.

Pour vous aiguillez..

Dans l'initialisation des collections vous pouvez voir pour les ComboBox,

  • Une collection qui est initialisée avec CollectCB.Add Obj.Object, S c'est la collection propre au contrôle
  • Une autre avec CollectCB1.Add Obj, S c'est la collection qui permet de tester les propriétés héritées communes.

Dis est-ce que je peux t'envoyer mes fichier pour que tu vois ce qui ne va pas ?? s'il te plait

Je suppose que c'est parce que tu à des données "sensibles"

Tu peu soit me les envoyer par MP ou si plus de 300Ko par mail.

Rechercher des sujets similaires à "vba checkbox combobox"