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,

    en principe, c'est
    Private Sub UserForm_Initialize()
    pour initialiser un obejt a l'ouverture de lUF
    0
    1. 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
      0
      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
        0
    2. Dans une userform, donc comment faire pour que mon ComboBox fonctionne
      0
      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
        0
    3. Je suis débutant que veux tu dire par

      que veux dire UF
      0
      1. Re,

        UF: userform, celle que vous avez avec la combobox !!!!!!
        0
    4. Clic droit sur ton user form puis "code".
      Ou double clic simplement sur ton userform.
      0
      1. 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
        0
        1. Mon UserFormImprCata
          0
        2. @viret1290Re,

          pouvez-vous me dire mon erreur Dites deja ce qui ne va pas, s'il y a une erreur laquelle !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
          0
      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é
        0
        1. Re,

          Si pas erreur de recopie:

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

          FBaseLivre kezaco ???????????????
          0
        2. @f894009C'est le nom de ma feuille ou se trouve la liste pour la liste déroulante
          0
        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
          0
      3. 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
        0
        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...
          0
      4. 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
        0
        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
          0
          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
            0