Pb Affiche ListBox avec fonction SpecialCells(xlCellTypeVisible).

tlecoeur

XLDnaute Nouveau
Bonsoir le Forum,
Premièrement , je tiens à tous vous remercier . Car très souvent les recherches dans ce forum m'ont permis de progresser. Après une nouvelle recherche, je n'ai pas trouvé de solution à mon problème. D'ou ce message.

Je souhaite créer un outil de selection pour mes collègues. En cliquant sur les différents boutons dans le form, ils vont réduire la liste de ma listbox. cela fonctionne très bien . Le problème se pose lorsque avec les jeux de filtrage, il y a des lignes vides entre les ligne ssélectionnées. et la ma listbox n'affiche que les lignes jusqu'à la première ligne vide en oubliant les suivantes.
Petit programme exemple :
Form_principal qui se lance à l'ouverture
lixtbox_switch qui est mise à jour dès qu'un bouton est modifié via la procédure charge_ListBox_switch()

Merci à vous pour votre aide.

Thierry
 

Pièces jointes

  • fichier_travail.xlsm
    474.5 KB · Affichages: 64

Herdet

Nous a quitté
Repose en paix
Re : Pb Affiche ListBox avec fonction SpecialCells(xlCellTypeVisible).

Bonjour Thierry,
J'ai analysé ton problème et te transmettrait dans l'après-midi je pense, une solution un peu plus élaborée d'extraction de données (déjà créée et testée avec succès) et avec un système de traduction automatisé déjà pal mal expérimenté.
A bientôt
Robert
 

tlecoeur

XLDnaute Nouveau
Re : Pb Affiche ListBox avec fonction SpecialCells(xlCellTypeVisible).

bonjour à tous et à toi robert,
as tu pu trouver une solution à mon problème ? est ce que qq d'autres peut m'aider ? J'ai pratiquement terminé mon outil et il ne me reste plus que ce problème d'affichage .
merci à vous pour aide
Thierry
 

Paf

XLDnaute Barbatruc
Re : Pb Affiche ListBox avec fonction SpecialCells(xlCellTypeVisible).

Bonjour,

sans avoir pu mettre en évidence l'absence de filtrage s'il y a des lignes vides, j'ai noté des "curiosités" dans la définition de la plage de données à filtrer .

Dans Private Sub TextBox_copper_port_Change() et Private Sub TextBox_fiber_port_Change() on a :
Selection.AutoFilter ou ActiveSheet.Range("$A$1:$AI$70").AutoFilter alors que les données vont jusqu'en colonne AX et en ligne 87

Dans Private Sub Profinet_classe_Change() on a:
ActiveSheet.Range(tableau).AutoFilter

Dans Public Sub filtrage_data(motcle, filtre) on a :
Rows("1:1").Select
Selection.Find(What:=motcle, After:=ActiveCell, LookIn:=xlFormulas, _
.......
ActiveCell.Offset(0, 0).Select
nbcolonne = ActiveCell.Column
If filtre = "" Then
Selection.AutoFilter Field:=nbcolonne
Else
Selection.AutoFilter Field:=nbcolonne, Criteria1:=filtre
End If

On ne sait pas toujours à quoi se réfèrent les Select

Dans la mesure où l'on a défini une variable tableau contenant la plage de données globale, je pense qu'il vaudrait mieux harmoniser ces différents filtrages dans ce genre:

Worksheets("data").Range(tableau).AutoFilter ....

Bonne suite
A+
 

tlecoeur

XLDnaute Nouveau
Re : Pb Affiche ListBox avec fonction SpecialCells(xlCellTypeVisible).

bonjour à tous,
Salut Paf, en fait , j'ai refait tous mes filtres avec une macro qui cherche le nom de la colonne et qui filtre selon le mot clé associé . tout fonctionne très bien. le seul problème , c'est vraiment l'affichage.
Pour que vous puissiez voir, je joint le fichier global final. Par exemple, si on met 8 dans le nombre de port cuivre, le filtre fonctionne bien sur la colonne E mais l'affichage ne va afficher que les lignes 3 et 4 et s'arreter à la ligne 16 car il y des lignes vides à cause du filtre. Et franchement , malgré toutes mes recherches, il est bien expliqué que la fonction SpecialCells(xlCellTypeVisible) affiche toutes les lignes visibles .

encore une fois , merci pour votre aide.

thierry
 

Pièces jointes

  • choix_switchs.xlsm
    530.1 KB · Affichages: 61
  • choix_switchs.xlsm
    530.1 KB · Affichages: 73
  • choix_switchs.xlsm
    530.1 KB · Affichages: 78

Paf

XLDnaute Barbatruc
Re : Pb Affiche ListBox avec fonction SpecialCells(xlCellTypeVisible).

Re,

effectivement!

la solution est de trier les données préalablement dans l'ordre croissant de la colonne que l'on va filtrer .

Dans Public Sub UserForm_Initialize(), définir un tableau au plus juste:
Code:
Dim DerL As Integer
DerL = Range("A65536").End(xlUp).Row
tableau = "$A$2:$AX" & DerL

Dans Public Sub filtrage_data(motcle, filtre) rajouter avant If filtre = "" Then
Code:
Range(tableau).Sort Key1:=Columns(nbcolonne), Order1:=xlAscending, Header:=xlNo

A rajouter, a priori, dans les autres sub de filtrage pour lesquelles je n'ai pas fait de tests.

Attention il reste des autofilter sans passer par une sub de filtrage dans Private Sub CheckBox_power_redundant_Change(), Private Sub CheckBox1_Change() et Private Sub fiber_connector_Change(). Les données n'étant pas triées il y a risque d'avoir des lignes manquantes.

Bonne suite
A+
 
Dernière édition:

tlecoeur

XLDnaute Nouveau
Re : Pb Affiche ListBox avec fonction SpecialCells(xlCellTypeVisible).

bonjour à tous,
j'ai testé dans tous les sens , je n'y arrive pas . Paf, j'ai inséré le tri sur la recherche simple , double et triple mais , sur certains cas, il me reste encore des lignes vides donc le combobox n'affiche pas tous les choix possibles. est ce que qq a une idée , moi je bloque
je vous joins la dernière version de mon fichier . Merci à tous
 

Pièces jointes

  • choix_switchs.xlsm
    151.9 KB · Affichages: 51
  • choix_switchs.xlsm
    151.9 KB · Affichages: 84
  • choix_switchs.xlsm
    151.9 KB · Affichages: 94

Paf

XLDnaute Barbatruc
Re : Pb Affiche ListBox avec fonction SpecialCells(xlCellTypeVisible).

bonjour,

sur certains cas, il me reste encore des lignes vides donc le combobox n'affiche pas tous les choix possibles....
Vu la précision du problème , l'ampleur du code et le nombre important de choix de tri possible, ce sera sans moi !

Bonne suite
 

Discussions similaires

Statistiques des forums

Discussions
312 412
Messages
2 088 195
Membres
103 763
dernier inscrit
p.michaux