Alimenter Listbox sans prendre les lignes vide de la feuille de données

  • Initiateur de la discussion Initiateur de la discussion lodam
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lodam

XLDnaute Occasionnel
Bonjour

Je vous soumets mon problème : alimenter une listbox sans prendre en compte les lignes vides de la feuille qui l'alimente
J'ai lu plusieurs post notamment traitant du tri possible des données avant l'alimentation de la listbox ce qui aurait permis d'éviter les blancs. Mais leproblème est que je dois conserver le format de ma feuille les données sont parfois séparées par deux ou 3 trois lignes vides.

J'ai tenté avec array et tablotemp mais je ne les maîtrise pas assez.
J'ai aussi trouvé un code avec une collection (toutes mes excuses au propriétaire, je ne sais plus où je l'ai trouvé...)
Cela marche très bien mais je n'ai pas les autres colonnes de ma listbox

Dans le fichier joint, la listbox s'alimente mais en prenant aussi les lignes vides
Comment faire pour les enlever sans toucher à la feuille ?

Merci pour votre grande aide d'avance

damien
 

Pièces jointes

Re : Alimenter Listbox sans prendre les lignes vide de la feuille de données

Bonjour Iodam,

Ci-joint le code modifié (en rouge) de votre macro charger_liste.

J'ai utilisé un filtre automatique qui cache les lignes vides, ainsi qu'une feuille supplémentaire Feuil3 pour le Copier/Coller (elle doit être masquée).

Code:
Private Sub charger_liste()
With Sheets("feuil2")
    [COLOR="Red"].Columns("A:X").AutoFilter Field:=1, Criteria1:=">""""", Operator:=xlAnd
    .Range("A:X").Copy Sheets("Feuil3").Range("A1")
    tablotemp = Sheets("Feuil3").Range("A2:X" & .Range("A65536").End(xlUp).Row).Value
    Sheets("Feuil3").Range("A:X").Clear
    .AutoFilterMode = False[/COLOR]
End With

With ListBox_consulter_dossier
    .ColumnCount = 3
    .ColumnWidths = "60;90;90;90;90;90"
    .list = tablotemp
End With

End Sub

Il y a sans doute moyen d'éviter la Feuil3 et le Copier/Coller, mais je ne sais pas faire.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour