Erreur 380 propriété ListIndex

Bonjour,

J'ai deux combobox alimenter avec ce code

Private Sub listecbb5()
  Set f = Sheets("Pano")
  Set MonDico = CreateObject("Scripting.Dictionary")
  a = f.Range("A7:A" & f.[A65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
  For I = LBound(a) To UBound(a)
    If a(I, 1) <> "" Then MonDico(a(I, 1)) = ""
  Next I
  Me.ComboBox5.List = MonDico.keys
End Sub
Private Sub listecbb6()
  Set f = Sheets("Pano")
  Set MonDico = CreateObject("Scripting.Dictionary")
  a = f.Range("G7:G" & f.[A65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
  For I = LBound(a) To UBound(a)
    If a(I, 1) <> "" Then MonDico(a(I, 1)) = ""
  Next I
  Me.ComboBox6.List = MonDico.keys
End Sub

Je voudrais lier les deux avec ce code :

Private Sub ComboBox5_Change()

Me.ComboBox6.Value = ""

Me.ComboBox6.ListIndex = Me.ComboBox5.ListIndex

End Sub

Cependant ça ne fonctionne pas ici :

Me.ComboBox6.ListIndex = Me.ComboBox5.ListIndex

Cela annonce une "erreur 380 et impossible de définir la propriété ListIndex" quand je selectionne une valeur qui a un indice ListIndex superieur a 174.

Je vous joint un fichier.

Merci pour votre aide

1test-cbb.xlsm (909.39 Ko)

Bonjour,

Pour moi çà fonctionne uniquement avec

Private Sub ComboBox5_Change()
ComboBox6.ListIndex = ComboBox5.ListIndex
End Sub

par besoin de rajouter des lignes ou des "Me."

Parfait merci beaucoup ! Quel était le problème du coup ?

J'ai de nouveau le probleme cette fois ci avec tout mon fichier et tout mon code.

7test-2.xlsm (718.49 Ko)

Désolé mais pour aider il faudrait une base correcte.

Dans ton premier fichier il y a des doublons. et dans ce cas la fonction listindex ne te sera d'aucune utilité car le résultat

dans la deuxième combobox sera décalé.

Dans ton deuxième fichier exemple tu n'as que des A en colonne G donc ta listindex pour combobox6 = 0 = A çà ne peut

donc pas être égal à listindex de combobox5

c'est utile de mettre une combobox en 6 ? une textbox ne serait pas plus efficace ? surtout que tu ne laisse pas la possibilité de selectionner autre chose dans la combobox6

D'accord donc comment je peux récupérer la ligne de ma valeur en combobox5 pour afficher en combobox 6 la la valeur en colonne G et sur la même ligne ?

A ta place j'utiliserai uniquement le listindex pour trouver le numéro de ligne dans excel puis j'irai chercher le contenu de la colonne G

Private Sub ComboBox5_Change()
Dim ligne As Long
ligne = ComboBox5.ListIndex + 7   ' on trouve le numéro de la ligne dans excel
ComboBox6.Value = Worksheets("PANO").Cells(ligne, 7).Value  ' on affiche Le contenu de le cellule de la m?me ligne en colonne 7 (colonne G )

End Sub

Pour précision une combobox.listindex commence par 0 et la première information de ton tableau commence à la ligne 7

Donc le numéro de ligne à trouver dans la feuille excel = ComboBox5.ListIndex + 7

5test-2-retour.xlsm (710.23 Ko)

Biensur à la fin il y aura toujours un décalage puisque ta combobox5 regroupe les infos donc les doublons feront sauter les lignes.

Pour Garder les doublons il faut donner un nom de plage de A7 à A3000 par exemple puis utiliser ce nom de plage dans la proriété

rowsource de ta combobox5…… du coup faut virer les infos concernant le combobox5 du "userform.initialize"

Merci pour toutes vos explications et votre aide, je classe le sujet en résolu.

Rechercher des sujets similaires à "erreur 380 propriete listindex"