Aujourd’hui, mon problème est relatif à un mystère de plus d’Excel, car mon fichier marche très bien mais seulement sous certaines conditions. Je vais essayer d’être concis, et je m’excuse par avance si mon message paraît un peu long.
Le fichier joint comporte un tableau s’étendant de A1 à C17. La macro du bouton OK filtre les colonnes A et B selon certains critères de choix et inscrit en C18 : Range("C65536").End(xlUp).Offset(1, 0).Select ActiveCell.Value = Application.Subtotal(9, ActiveSheet.AutoFilter.Range.Columns(3)) la somme correspondant aux filtres. La commande « Annuler » ou « Fermer » efface -entre autres- le contenu de C18 Range("C18").Select Selection.ClearContents pour pouvoir ré-inscrire en C18 le résultat d’un nouveau filtre. Or, c’est là que le bât blesse : en effet, un autre filtre demandé après « remise à zéro » (« Annuler ») fonctionne bien dans son calcul (le résultat est inscrit en C18) mais la ligne 18 est masquée. Seules apparaissent les lignes à partir de la ligne 19.
Cette anomalie disparaît si entre deux calculs de filtres on supprime les cellules A18 :C18 ou la ligne 18 entière (et non pas le contenu). Une telle action est facile à transcrire en vba. Je ne l’ai pas -encore- fait car j’aime comprendre les choses.
En fait, Excel agit, après suppression du contenu de A18 :C18 comme si ces cellules « contenaient » encore une valeur et les masque en cas de nouveau filtre.
Cette anomalie est-elle explicable par les plus calés d’entre vous ?
... ça donne l'impression que je me considère comme "un de ceux-là" ce qui est fort loin d'être le cas !
Bref, deux choses: la première est que je ne suis pas certain de rencontrer le même problème sous Xl 2000. La seconde est que j'aurais tendance à "décoller" le sous-total de la liste de données avec, par exemple: