XL 2016 Lignes vides non affichées après application d'un filtre (macro)

Cydonia37

XLDnaute Nouveau
Bonjour à tous :),

Je rencontre un problème sur un fichier Excel que j'ai créé, et j'espère qu'une âme charitable pourra m'aider à le résoudre.
J'ai donc un fichier Excel avec 1005 lignes renseignées.
J'ai créé via une macro 4 filtres différents qui me permettent de sélectionner seulement une partie de ces informations (filtre s'appliquant aux colonnes et aux lignes).
Le code vba type du filtre est le suivant :
ActiveSheet.Range("$B$7:$Q$3000").AutoFilter Field:=1, Criteria1:= "TEST LABO"
Range("J:O, U:AN, BG:BU").EntireColumn.Hidden = True
Range("A:I, P:T").EntireColumn.Hidden = False

Mais le problème est : qu'après application d'un filtre, la 1ère ligne vide qui apparaît à la suite de la dernière ligne contenant des données est la ligne 3097, alors qu'en théorie ce devrait être la ligne 1006 (car j'ai 1005 lignes de remplies). Comment faire en sorte que des lignes vides ne soient pas écartées lors de l'application d'un filtre ?
Je ne suis pas sure d'être très claire dans ma demande, donc n'hésitez pas à me demander des explications.
Je joindrai le fichier excel correspondant si demande.

1560155644154.png


Merci par avance pour vos réponses !
 

Cydonia37

XLDnaute Nouveau
Merci beaucoup pour ta réponse pierrejean :).
Bon il se trouve que je l'ai retravaillé depuis chez moi sous Calc d'open office, et j'ai dû réassigner les macros à des formes mais elles ont à nouveau sauté après enregistrement (mais elles sont toujours présentes dans l'éditeur). De toute façon je ne pense pas que cela soit directement lié aux macros, car lorsque j'essaie de filtrer manuellement, je rencontre la même problématique, à savoir que je me retrouve à la ligne 3097. Mais si besoin du fichier avec macros assignées, je l'enverrai demain depuis un ordinateur de mon travail qui tourne sous microsoft excel.
 

Fichiers joints

Brice G

XLDnaute Occasionnel
Bonsoir Cydonia,

je comprends mal le problème, il s'agit simplement de filtrer un tableau rempli de données pour en afficher seulement les colonnes et lignes voulues ?
Je vois mal comment les filtres ne te suffisent pas du coup, je suis désolé.
 

job75

XLDnaute Barbatruc
Bonjour Cydonia37, Pierre, Brice G, le forum,
Mais le problème est : qu'après application d'un filtre, la 1ère ligne vide qui apparaît à la suite de la dernière ligne contenant des données est la ligne 3097, alors qu'en théorie ce devrait être la ligne 1006 (car j'ai 1005 lignes de remplies).
Sur le fichier du post #3 il y a des formules jusqu'à la cellule BG3096, c'est normal que le filtre aille jusqu'à cette ligne.

Et comme les cellules B1006 à B3096 ne contiennent pas "TEST LABO" les lignes 1006 à 3096 sont masquées.

PS : le fichier est vérolé, il y a un message à l'ouverture pour le réparer.

Et le VBA contient 2 ThisWorkbook...!!!

Bonne journée.
 

Cydonia37

XLDnaute Nouveau
Bonjour Brice, job75 ,

Pour répondre à ta question, Brice G, ce fichier serait à la fois un fichier de lecture, mais aussi d'écriture. J'aimerais que les personnes puissent remplir des lignes du fichier sans se soucier du fait qu'il y ait un filtre ou non, car dans le cas de mon fichier, le risque est que des données soient renseignées à partir de la ligne 3097, et qu'il n'y ait rien entre les lignes 1006 et 3097.

Merci pour ton éclairage job75, cela parait plutôt évident maintenant que tu le dis.... Qu'est-ce que je peux faire du coup concrètement ? Car je suis obligée de laisser ces formules à l'avance. J'en aurais sur 5 colonnes. Est-ce que écrire ces formules en vba résoudrait le problème ? As-tu une autre solution ?
Parce que je suis vraiment débutante en vba, d'ailleurs je ne sais pas précisément ce que sont les workbook, et comment j'ai pu faire pour en avoir deux :rolleyes:. Je vais me document davantage...

(Mon fichier original n'est pas vérolé, je ne sais pas pourquoi il y a eu problème avec celui-là. Je vous joins un fichier de meilleure qualité, même si je ne sais pas si cela sera encore utile)
 

Fichiers joints

Cydonia37

XLDnaute Nouveau
Bonjour,

Du coup, j'ai un peu réfléchi à mon problème, maintenant que j'en connais la nature.
J'aurais deux alternatives possibles grosso modo :
- écrire les formules qui sont présentes dans les cellules en langage vba (plusieurs formules)
- ajouter chacun des 4 filtres vba (
ActiveSheet.Range("$B$7:$Q$3000").AutoFilter Field:=1, Criteria1:= "TEST LABO") le critère (par ex) "test labo" OU ""vide".
Ou par opposition, écarter toutes les catégories qui ne sont pas celles attendues (y compris les cellules vides)

Je ne sais pas si je raisonne bien ? Je me demande aussi comment sont nommées les cellules vides ? Dans le cas où il y aurait possibilité d'ajouter un second critère dans la formule vba autofilter. Est-ce que "-" fonctionnerait ?
 

Discussions similaires


Haut Bas