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!