ComBox ne fonctionne pas

Résolu
Bonjour,
mon code est le suivant
Private Sub ComboBoxLangue_Change()
Dim j As Integer
'récupère les données de la colonne K de FBaseLivre
For j = 2 To FBaseLivre.Cells(1, 1).End(xlUp).Row
ComBoxLangue = Worksheets("Base Livres").Range("K" & j)
'filtre les doublons
If ComBoxLangue.ListIndex = -1 Then ComBoxLangue.AddItem Range("K" + j)
' End If
Next j
End Sub

je vois que chez vous c'est _Initialize mais moi j'ai _Change et je n'arrive pas à mettre _Initialize comment dois je faire merci de votre aide

Lionel

12 réponses

  1. Bonjour,

    J'ai refait ma UserForm et retaper le code et cela fonctionne maintenant, je ne sais pas ou était mon erreur.

    Je vous remercie infiniment de votre aide
    1. Bonjour,

      J'ai refait ma UserForm et retaper le code et cela fonctionne maintenant, je ne sais pas ou était mon erreur.

      Je vous remercie infiniment de votre aide
      1. Bonjour,

        J'ai refait ma UserForm et retaper le code et cela fonctionne maintenant, je ne sais pas ou était mon erreur.

        Je vous remercie infiniment de votre aide
        1. re-bonjour

          j'ai toujours le même problème.

          J'ai un bouton pour afficher le ComBox

          et j'ai mis le code que tu m'as donnée.

          Quand j'appuie sur le bouton pour afficher le ComBox le message d'erreur suivant apparaît:
          Private Sub BtImprCatalogue_Click()

          UserFormImprCata.Show

          End Sub

          Comment faire
          1. Re,

            Pouvez-vous mettre votre fichier a dispo sans donnees sensibles

            Pour transmettre un fichier,
            il faut passer par un site de pièce jointe tel que cjoint.com

            Allez sur ce site : https://www.cjoint.com/
            Clic sur parcourir,
            Cherche ton fichier,
            clic sur ouvrir,
            Clic sur "Créer le lien cjoint",
            Copier le lien,
            Revenir ici le coller dans une réponse...
        2. Je l'ai marqué au début de mon message à 12h59.
          Voici le message

          Le membre existe déjà dans un module objet dont le présent module est dérivé
          1. Re,

            Si pas erreur de recopie:

            Range("K" + j) remplacez le + par &

            FBaseLivre kezaco ???????????????
          2. @f894009C'est le nom de ma feuille ou se trouve la liste pour la liste déroulante
          3. @viret1290Re,

            nom de ma feuille ou se trouve la liste Worksheets("Base Livres")

            ' en partant de votre code
            Private Sub UserForm_Initialize()
                Dim j As Integer
            
                 temps = Timer
               'récupère les données de la colonne K de FBaseLivre
                With Worksheets("Base Livres")
                    Fin = .Range("K" & Rows.Count).End(xlUp).Row
                    For j = 2 To Fin
                        ComBoxLangue = .Range("K" & j)
                        'filtre les doublons
                        If ComBoxLangue.ListIndex = -1 Then ComBoxLangue.AddItem .Range("K" & j)
                    Next j
                    ComBoxLangue.ListIndex = -1
                End With
                    MsgBox Timer - temps
            End Sub


            'ici plus rapide
            Private Sub UserForm_Initialize()
                Dim Dico_Livre As Object, Plage, TMP, x As Long, FP As Long
                
                temps = Timer
                Set Dico_Livre = CreateObject("Scripting.Dictionary")
                With Worksheets("Base Livres")
                    derlig = .Range("K" & Rows.Count).End(xlUp).Row     'derniere cellule non vide
                    Plage = .Range("K2:K" & derlig)                               'mise en memoire
                End With
                    FP = UBound(Plage, 1)
                    For x = 1 To FP: Dico_Livre(Plage(x, 1)) = "": Next x
                    'transfert infos en tableau
                    TMP = Dico_Livre.Keys 'Table sans doublon
                    ComBoxLangue.List = TMP
                    MsgBox Timer - temps
            End Sub


            Tout depend du nombre de livres
        3. J'ai un problème voici l'erreur.

          Le membre existe déjà dans un module objet dont le présent module est dérivé

          dans la feuille Gestion pour faire apparaitre UserFormImprCatalogue

          Private Sub BtImprCatalogue_Click()

          UserFormImprCata.Show

          End Sub

          et dans L'UF

          Private Sub UserForm_Initialize()
          Dim j As Integer
          'récupère les données de la colonne K de FBaseLivre
          For j = 2 To FBaseLivre.Cells(1, 1).End(xlUp).Row
          ComBoxLangue = Worksheets("Base Livres").Range("K" & j)
          'filtre les doublons
          If ComBoxLangue.ListIndex = -1 Then ComBoxLangue.AddItem Range("K" + j)
          Next j
          End Sub

          pouvez-vous me dire mon erreur
          merci
          1. Mon UserFormImprCata
          2. @viret1290Re,

            pouvez-vous me dire mon erreur Dites deja ce qui ne va pas, s'il y a une erreur laquelle !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        4. Clic droit sur ton user form puis "code".
          Ou double clic simplement sur ton userform.
          1. Je suis débutant que veux tu dire par

            que veux dire UF
            1. Re,

              UF: userform, celle que vous avez avec la combobox !!!!!!
          2. Dans une userform, donc comment faire pour que mon ComboBox fonctionne
            1. Re,

              code a mettre dans le VBA de l'UF

              Private Sub UserForm_Initialize()
                  Dim j As Integer
                  'récupère les données de la colonne K de FBaseLivre
                  For j = 2 To FBaseLivre.Cells(1, 1).End(xlUp).Row
                      ComBoxLangue = Worksheets("Base Livres").Range("K" & j)
                      'filtre les doublons
                      If ComBoxLangue.ListIndex = -1 Then ComBoxLangue.AddItem Range("K" + j)
                  Next j
              End Sub
          3. Bonjour,
            merci pour la réponse,
            mais je n'ai pas Initialize, comment faire dans ce cas ??
            Je ne le trouve pas en haut à droite, et si je le note manuellement, mon ComBox n'est plus reconnu ??

            Pouvez-vous m'aider
            1. Re,

              cette combobox est dans une userform ou sur une feuille ??????

              Combobox_initialize n'EXISTE PAS, il n'y a que UserForm_Initialize pour une UF
          4. Bonjour,

            en principe, c'est
            Private Sub UserForm_Initialize()
            pour initialiser un obejt a l'ouverture de lUF