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

f894009 Messages postés 17413 Statut Membre 1 715
 
Bonjour,

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

que veux dire UF
0
f894009 Messages postés 17413 Statut Membre 1 715
 
Re,

UF: userform, celle que vous avez avec la combobox !!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Bonjour,

Un petit peu de lecture pour t'éclairer:


https://silkyroad.developpez.com/VBA/UserForm/#LII
0
Alzahel Messages postés 3 Statut Membre
 
Clic droit sur ton user form puis "code".
Ou double clic simplement sur ton userform.
0
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
viret1290 Messages postés 146 Statut Membre 2
 
Mon UserFormImprCata
0
f894009 Messages postés 17413 Statut Membre 1 715 > 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
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
f894009 Messages postés 17413 Statut Membre 1 715
 
Re,

Si pas erreur de recopie:

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

FBaseLivre kezaco ???????????????
0
viret1290 Messages postés 146 Statut Membre 2 > f894009 Messages postés 17413 Statut Membre
 
C'est le nom de ma feuille ou se trouve la liste pour la liste déroulante
0
f894009 Messages postés 17413 Statut Membre 1 715 > 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
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
f894009 Messages postés 17413 Statut Membre 1 715
 
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
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
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
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