XL 2019 Erreur sur filtres avec Tableaux VBA

bambi

XLDnaute Occasionnel
Bonjour à tous :)

Il y a plus d'un an, j'avais sollicité votre aide pour créer une page de filtres
Il s'agissait de filtrer un tableau présent dans une feuille (Carnet) et de reporter les données filtrées dans une autre (Filtres)
Le tableau contient des formules, des dates, des heures, des données diverses
@job75 avait parfaitement résolu ma demande à l'aide de Tableaux VBA >> ici

Cette année, sur ce même fichier, je dois filtrer depuis la ligne 53 de la feuille Carnet au lieu de la ligne 23
Je pensais avoir fait les ajustements nécessaires dans le VBA
Mais j'ai une erreur d'exécution 5 sur les deux filtres JOUR et MOIS de la feuille FILTRES
Et le débogage surligne le code .Resize(n) = Application.Transpose(b)

Tous les autres filtres fonctionnent
Précision : Le filtrage se fait depuis la feuille Filtres avec des listes dans les cellules B24 à J24

Pourriez-vous m'aider à résoudre ce problème ?

Merci d'avance ;)
 

Pièces jointes

  • Classeur1.xlsm
    164.8 KB · Affichages: 19
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir bambi,

Vous avez modifié les formats textes des jours et des mois donc dans la macro remplacez :
VB:
X = Application.Proper(Format(99 + i, "dddd")) '----nom propre
par :
VB:
X = Application.Proper(Left(Format(99 + i, "ddd"), 3)) '----nom propre
et remplacez :
VB:
X = Application.Proper(Format("1/" & i, "mmmm")) '----nom propre
par :
VB:
X = Application.Proper(Format("1/" & i, "mmm")) '----nom propre

Nota : vous avez ajouté des Application.ScreenUpdating = False/True, ils sont inutiles.

A+
 

job75

XLDnaute Barbatruc
Je suis arrivé à savoir pourquoi Excel plantait.

C'est à cause dut tri en colonne AM :
VB:
.Resize(n, 2).Sort .Cells, xlAscending, Header:=xlNo 'au moins 2 cellules
qui curieusement relançait la macro SelectionChange qui ainsi bouclait sans fin.

Mais très curieusement cela se produisait seulement quand on sélectionnait B29 D29 F29 G29.

Et pas quand on sélectionnait C29 E29 H29 I29 J29...
 

bambi

XLDnaute Occasionnel
Merci @job75
Comme toujours, une réponse très complète et opérationnelle
De mon côté cela fonctionnait car j'ai introduit directement tes changements dans mon fichier initial en l'adaptant.
Mais encore merci pour tous ces détails et explications qui me permettent de mieux appréhender la mécanique du code VBA
 

job75

XLDnaute Barbatruc
Ah mais j'ai finalement tout élucidé.

Le tri en colonne AM faisait planter Excel parce que la ligne 2 était masquée.

Dans ce fichier (2) elle est affichée, plus besoin des Application.EnableEvents.

Tout ça m'a permis de découvrir un problème que je n'avais jamais rencontré, merci bambi.
 

Pièces jointes

  • Classeur(2).xlsm
    165.4 KB · Affichages: 6

bambi

XLDnaute Occasionnel
Voilà pourquoi cela a fonctionné sans souci dans mon fichier origine. Cette ligne n'y est pas masquée.
D'ailleurs elle n'était pas non plus masquée dans le fichier exemple que j'ai posté en tout début de thread.
Excel a ces propres mystères. :)
Encore bravo @job75 pour cette issue que je valide comme solution
Merci.gif
 

job75

XLDnaute Barbatruc
Bon eh bien la ligne 2 ne se masque pas si l'on utilise pour le tri de la colonne AM :
VB:
If n > 1 Then .Resize(n).Sort .Cells, xlAscending, Header:=xlNo 'au moins 2 cellules
Fichier (3).
 

Pièces jointes

  • Classeur(3).xlsm
    164.4 KB · Affichages: 16

Discussions similaires

Réponses
2
Affichages
96

Statistiques des forums

Discussions
311 540
Messages
2 080 527
Membres
101 234
dernier inscrit
Layani89