ListBox et conditions sur cellule
Bonjour à tous,
J'aurais besoin d'aide pour une manipulation sous une listebox.
Pour faire simple : J'ai une listbox qui s'initialise avec ce code et qui fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Private Sub Initialise_Listbox()
Dim L As Integer
Dim i As Integer
L = Sheets("Plaquettes").Range(as400 & "65536").End(xlUp).Row + 1
(xlUp).Row + 1
Me.ListBox1.Clear
i = 0
While i < L
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = Sheets("Plaquettes").Range(as400 & i + 2)
Me.ListBox1.List(i, 1) = Sheets("Plaquettes").Range(designationfournisseur & i + 2)
Me.ListBox1.List(i, 2) = Sheets("Plaquettes").Range(nuance & i + 2)
Me.ListBox1.List(i, 3) = Sheets("Plaquettes").Range(fonction & i + 2)
Me.ListBox1.List(i, 4) = Sheets("Plaquettes").Range("A" & i + 2).Row ' J'AI CACHE LA COLONNE 5 QUI REPRESENTE LE NUMERO DE LA LIGNE DANS LE FICHIER EXCEL
i = i + 1
Wend
End Sub |
Par contre, une fois que je souhaite y ajouter une condition (car la colonne A contient de temps en temps des cellules vides et j'aimerais obtenir que celles qui sont vides), j'obtiens cette erreur :
Citation:
Erreur d'exécution '381':
Impossible de définir la propriété List. Index de table de propriétés non valide.
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| Private Sub ArtNonCodifies_Click()
Dim L As Integer
Dim L1 As Integer
Dim L2 As Integer
Dim i As Integer
L1 = Sheets("Plaquettes").Range(as400 & "65536").End(xlUp).Row + 1
L2 = Sheets("Plaquettes").Range(designationfournisseur & "65536").End(xlUp).Row + 1
If L1 < L2 Then
L = L2
Else
L = L1
End If
Me.ListBox1.Clear
i = 0
While i < L
If Sheets("Plaquettes").Range(as400 & i + 2) = "" Then 'AJOUT DE LA CONDITION
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = Sheets("Plaquettes").Range(as400 & i + 2) 'Première ligne avec l'erreur
Me.ListBox1.List(i, 1) = Sheets("Plaquettes").Range(designationfournisseur & i + 2)
Me.ListBox1.List(i, 2) = Sheets("Plaquettes").Range(nuance & i + 2)
Me.ListBox1.List(i, 3) = Sheets("Plaquettes").Range(fonction & i + 2)
Me.ListBox1.List(i, 4) = Sheets("Plaquettes").Range("A" & i + 2).Row
i = i + 1
Else 'AJOUT DE LA CONDITION
i = i + 1 'AJOUT DE LA CONDITION
End If 'AJOUT DE LA CONDITION
Wend
End Sub |
Si une âme charitable passerait par içi, je lui serait reconnaissant =)
Merci d'avance
EDIT : Les variables dans les Range sont des variables globales lancées lors de l'ouverture du fichier ou lors du clic sur le bouton de commande.