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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.