Problème d'affichage avec une listbox - Besoin d'aide - VB/VBA/VBS - Programmation
Marsh Posté le 21-04-2006 à 10:44:29
Bon je viens de copier sur un nouveau fichier excel la partie du code et çà fonctionne parfaitement!!!!
En revanche, sur l'autre fichier (cf. message au-dessus), la listbox2 n'affiche pas la liste complètement seulement quand
ListBox1.ListIndex=0
Et je ne sais pas pourquoi... car çà à l'air de fonctionner pour les autres valeurs de ListBox1.ListIndex
Je sens venir une longue journée...
Marsh Posté le 21-04-2006 à 10:59:19
Encore moi ;-)
J'ai trouvé!!! les variables sont bonnes, le problème vient des conditions (environ 20 pour les changements de feuilles)
Bon le truc est de faire un petit bidoullage maison en répétant la définition du "nom" dans chaque condition
Private Sub ListBox1_change()
Dim nom As String
If ListBox1.ListIndex = 0 Then
Sheets("Autorisation de travail" ).Select
nom = Range("A4".Address & ":" & Range("A4".End(xlDown).Address
Else
If ListBox1.ListIndex = 1 Then
Sheets("CMME" ).Select
nom = Range("A4".Address & ":" & Range("A4".End(xlDown).Address
Else
........
.......
.......
End if
ListBox2.RowSource = nom
ListBox2.ListIndex = 0
End Sub
c'est pas le meilleur truc de gonfler le prgm par des répétitions de lignes mais çà fonctionne...
Enfin si vous avait une autre solution je suis toujours prenneur
voilà voilou
Marsh Posté le 21-04-2006 à 11:23:40
Salut nullos59,
pour tes condition en chaines comme ici tu devrais le tenter avec Select Case/End select. Par ailleurs, pour ma part c'est la feuille que je mettrais en variable :
Code :
|
De plus si ton listbox1 renvois en value le nom de ta feuille tu dois pouvoir encore alléger ton code.
A voir
Marsh Posté le 21-04-2006 à 11:54:20
Je te remercie Watashi
Je vais appliquer ton conseil pour alléger mon code
Marsh Posté le 21-04-2006 à 10:14:30
Bonjour tout le monde,
Voilà un petit moment que je commence réaliser des petites applications sous vba avec excel, dans la plupart des cas j'arrive à corriger mes erreurs mais là, j'aurai besoin d'aide ou de conseils.
Je travaille actuellement sur une base de données excel importante (en terme de volume) 1 tableau par feuille (le classeur contient 20 feuilles) chaque tableau posséde entre 50 et 100 lignes... En un mot c'est la fête
Pour faciliter la lecture et la saisie de nouvelles valeurs, j'utilise des userform.
Mais voilà, sur l'un des userform, j'ai 2 listbox (listbox1 et listbox2). La valeur de la listbox1 va déterminer la liste utilisée par la listbox2.
Lorsque je lance l'application, la liaison listbox1 et listbox2 marche mais le problème est que la listbox2 ne va pas faire apparaître l'ensemble des valeurs de la liste.
(cette liste est composé d'une soixantaine de noms, et seul les 15 ou 20 premier apparaissent!!! )
Ensuite, c'est la valeur retenue par la listbox2 qui commandes l'affichage des textbox (pas de problème de ce cote là.
Je ne sais pas si cela vient de ma déclaration de variables ou d'autres chose... Je vous file un petit bout de code, je n'ai pas trouvé ce qui clochait! Maaatin diiiiffffffiiiicccillllleeee!!
Private Sub ListBox1_change()
Dim nom As String
nom = Range("A4" ).Address & ":" & Range("A4" ).End(xlDown).Address
If ListBox1.ListIndex = 0 Then
Sheets("Autorisation de travail" ).Select
Else
If ListBox1.ListIndex = 1 Then
Sheets("CMME" ).Select
Else
........
.......
.......
End if
ListBox2.RowSource = nom
ListBox2.ListIndex = 0
End Sub
Merci d'avance