Suppression ligne vide listbox

Bonjour,

Je coince un peu pour supprimer des lignes vides dans des listbox.

Voici mon code pour ajouter les données dans la listbox :

Dim cell As Range
Dim MyArr As Variant
Dim o As Long

Dim BDerlig As Integer

ReDim MyArr(0 To 20000)

BDerlig = Worksheets("Recueil ECA").Range("B" & Rows.Count).End(xlUp).Row

With Worksheets("Récupération données tampon")
            For Each cell In .Range("C2:C" & BDerlig).SpecialCells(xlCellTypeVisible)
                    MyArr(o) = cell.Value
                    o = o + 1
            Next cell

            ListBoxIMPACTSELEC2D.List = MyArr
End With

Dans la colonne où les valeurs sont récupérées il peut y avoir des cellules vides.

J'ai essayé d'ajouter une condition si une cellule était vide mais cela n'a rien réglé.

Pouvez-vous m'aider là-dessus ?

Merci d'avance

GuiGui8731

Bonjour,

Un essai non testé ...

Dim cell As Range
Dim MyArr As Variant
Dim o As Long

Dim BDerlig As Integer

ReDim MyArr(0 To 20000)

BDerlig = Worksheets("Recueil ECA").Range("B" & Rows.Count).End(xlUp).Row

With Worksheets("Récupération données tampon")
            For Each cell In .Range("C2:C" & BDerlig).SpecialCells(xlCellTypeVisible)
                    if cell <> "" then MyArr(o) = cell.Value   ' << modif
                    o = o + 1
            Next cell

            ListBoxIMPACTSELEC2D.List = MyArr
End With

ric

Bonjour Guigui, Salut Ric,

Et au cas où, il existe le paramètre : xlCellTypeBlanks pour les cellules vides. Cependant, je crois que la combinaison de 2 specialcells n'est pas toujours une réussite.

Cdlt,

Bonjour Ric,

Merci pour ton retour.

Je viens de tester ton code et celui-ci ne marche pas j'ai l'impression.

Peut-on spécifier à cell la colonne où chercher le vide ?

Comme dans cet exemple : if cell( <> "" then MyArr(o) = cell.Value ' << modif

Dim Y As Integer

For Each cell In .Range("C2:C" & BDerlig).SpecialCells(xlCellTypeVisible)
                   For Y = 2 To Worksheets("Récupération données 
                   tampon").Cells(Rows.Count, "A").End(xlUp).Row

                             if Worksheets("Récupération données tampon").cell(Y, "C") <> "" 
                             then MyArr(o) = cell.Value   ' << modif
                                           MyArr(o) = cell.Value
                                           o = o + 1
                  Next Y
Next cell

GuiGui8731

Bonjour à tous,

Dans le cas de ton exemple > tu n'opères que sur la colonne "C" > c'est pour cela que je t'ai proposé une solution simpliste ...

Si le code opérait sur plage à plusieurs colonnes > il faudrait une solution différente ...

ric

Bonjour ric,

Après quelques adaptations j'ai pu résoudre mon problème en utilisant ta solution.

Merci pour tout

GuiGui8731

Rechercher des sujets similaires à "suppression ligne vide listbox"