Liaison entre deux Listbox décalée

Bonjour,

je suis novice en VBA néanmoins, grâce aux forums d'aide et aux différents sites qui existent j'ai appris énormément de choses et ai pu me débrouiller par moi-même pour faire l'essentiel de mon fichier.

Il s'agit d'une sorte de programme pour effectuer des devis. A la demande de l'utilisateur, un Userform se lance et on y trouvera le nom de différents lots (disons lot 1 à 10), chacun ayant différentes majorations en fonction des années. Ces majorations sont variables d'un lot à un autre.

L'idée : lorsque je clique sur l'un des lot dans la listbox1, je souhaite que ses majorations apparaîssent dans la listbox2

exemple : si le lot 1 a des actualisations de 2008 à 2013, je souhaite que la listbox n° 2 m'affiche ces années dans l'ordre.

Ci dessous la fonction de création de la liste

La première partie constiste à chercher le nom du lot dans un tableau et à récupérer les première et dernière années de ce lot (col. 5 et 6)

La seconde partie crée la liste et l'applique à la listbox2

Dim Première_Année, Dernière_Année, Année_Cours, Der_Lign, Longueur_Liste As Long

Der_Lign = Sheets("Data").Range("A" & Cells.Rows.Count).End(xlUp).Row

With Sheets("Data")

Première_Année = WorksheetFunction.VLookup(.Range("J8").Value, Sheets("Data").Range("A9:F" & Der_Lign), 5, False)

End With

With Sheets("Data")

Dernière_Année = WorksheetFunction.VLookup(.Range("J8").Value, Sheets("Data").Range("A9:F" & Der_Lign), 6, False)

End With

Longueur_Liste = Dernière_Année - Première_Année

Année_Cours = 0

Userform1.Listbox2.Clear 'effacement (initialisation) de la listbox2

While Année_Cours <= Longueur_Liste 'insertion des valeurs dans la listbox2

Userform1.Listbox2.AddItem Première_Année

Année_Cours = Année_Cours + 1

Première_Année = Première_Année + 1

Wend

End Sub

Mon souci (enfin!) : j'ai appliqué cette fonction dans "listbox1_click".

lorsque je choisi un lot, il m'affiche la liste des majorations avec un clic de retard: si je choisis lot 1, il ne m'affiche rien. Si je choisis ensuite lot 3, il m'affiche la liste du lot 1, etc.

Après maintes recherches (si si!), je n'ai pas trouvé la solution à ce problème.

Note : ici la liste se fait uniquement en VBA mais j'ai également essayé en créant une liste sur une feuille, le résultat est le même, j'ai un décalage d'un clic.

Donc si quelqu'un a une idée ou sait où je me suis trompé, il est le bienvenu !

Bonjour,

Aucune réponse depuis 13:22.

Faut dire que sans fichier de travail ça ne motive pas...

eric

[EDIT] :

Voici le fichier "nettoyé" (j'ai supprimé les liaisons vers les autres fichiers)

Je ne l'ai pas précisé avant mais je travaille sur Excel 2003

Avec le fichier ça marche mieux!

27devis-xpt.zip (27.76 Ko)
Rechercher des sujets similaires à "liaison entre deux listbox decalee"