ComBox ne fonctionne pas

Résolu
viret1290 Messages postés 146 Statut Membre -  
viret1290 Messages postés 146 Statut Membre -
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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    en principe, c'est
    Private Sub UserForm_Initialize()
    pour initialiser un obejt a l'ouverture de lUF
    0
  2. viret1290 Messages postés 146 Statut Membre 2
     
    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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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
  3. viret1290 Messages postés 146 Statut Membre 2
     
    Dans une userform, donc comment faire pour que mon ComboBox fonctionne
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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
  4. viret1290 Messages postés 146 Statut Membre 2
     
    Je suis débutant que veux tu dire par

    que veux dire UF
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      UF: userform, celle que vous avez avec la combobox !!!!!!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alzahel Messages postés 3 Statut Membre
     
    Clic droit sur ton user form puis "code".
    Ou double clic simplement sur ton userform.
    0
  7. viret1290 Messages postés 146 Statut Membre 2
     
    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. viret1290 Messages postés 146 Statut Membre 2
       
      Mon UserFormImprCata
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > viret1290 Messages postés 146 Statut Membre
         
        Re,

        pouvez-vous me dire mon erreur Dites deja ce qui ne va pas, s'il y a une erreur laquelle !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        0
  8. viret1290 Messages postés 146 Statut Membre 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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Si pas erreur de recopie:

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

      FBaseLivre kezaco ???????????????
      0
      1. viret1290 Messages postés 146 Statut Membre 2 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        C'est le nom de ma feuille ou se trouve la liste pour la liste déroulante
        0
      2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > viret1290 Messages postés 146 Statut Membre
         
        Re,

        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
  9. viret1290 Messages postés 146 Statut Membre 2
     
    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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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
  10. viret1290 Messages postés 146 Statut Membre 2
     
    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
  11. viret1290 Messages postés 146 Statut Membre 2
     
    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
  12. viret1290 Messages postés 146 Statut Membre 2
     
    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