Supprimer les filtres s'il y en a

  • Initiateur de la discussion Initiateur de la discussion Seb
  • 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 !

S

Seb

Guest
Bonjour à tous,

J'ai des petites macros simples qui me permettent, selon des valeurs contenues dans certaines cellules, d'afficher ou non certaines colonnes, d'une part, mais aussi de filtrer les valeurs dans certaines colonnes.

J'ai une des macros qui est RAZ, pour tout remettre à 0, c'est-à-dire réafficher toutes les colonnes ( à des petites exceptions près), ça c'est ok, mais aussi supprimer tous les filtres.
Or pour la suppression des filtres, en tatonnant, j'ai trouvé ça :
Code:
ActiveSheet.ShowAllData
qui marche assez bien.
Seulement quand par exemple je n'ai aucun filtre et que je lance cette macro, il met une erreur ' La méthode ShowAllData a échoué'.
Je me dis donc qu'il faut que je le fasse que SI il y a des filtres, mais comment décrire la condition dans mon if ? quelle est la syntaxe ?

Merci d'avance à tous !

Sébastien
 
Bonjour Seb,

une solution simple pour éviter que l'erreur stoppe ta macro:
On error resume next
ActiveSheet.ShowAllData
ici tu peux éventuellement récupérer l'erreur via :
If Err.number<>0 then .......
....et continuer la suite de la macro
ce code permet d'ignirer l'erreur qui vient de se produire et pass à la ligne suivante. mais attention, c'est valable pour toutes les erreurs à venir dans la macro.

Une autre solution est à chercher du coté de activesheet.autofilter

je n'ai pas la syntaxe en tête mais je pourrais vérifier

A+
 
Bonjour Luki, Seb, le Forum

Je conseillerai plutôt que de déckencher une erreur et de tenter de la gérer avec un 'On error resume next'...

Sub Lien supprimé()
&nbsp;&nbsp;&nbsp;With ActiveSheet
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If .FilterMode = True Then .ShowAllData
&nbsp;&nbsp;&nbsp;End With
End Sub

Pourquoi ce nom de macro ... hi hi hi, voir le lien !!! Hein Robert 😉

Bon Après Midi et Bon Wouik Hand !
@+Thierry
 
Merci à tous, ça marche nickel maintenant !
Par contre, une petite question complémentaire : maintenant que j'ai enlevé tous mes filtres, j'aimerais bien, si possible, aller à la dernière ligne du tableau (y a plein de lignes et, forcément, c'estle plus souvent les dernières qui intéressent plutôt que les premières..), comment faire pour indiquer à excel de se placer sur la dernière ligne où quelque chose est écrit ?

Enfin bon, ça c'est la question bonus, mais si ça marche pas c'est pas trop grave...
 
Salut Seb !

Avec :

ActiveCell.SpecialCells(xlLastCell).Select

Te positionnera sur la dernière cellule de ton tableau.

Ou si tu préfères dans la colonne A :

Range('A65000').End(xlUp).Select

@ +++


Moa

Message édité par: Moa, à: 13/06/2005 10:36
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Power Query
Réponses
8
Affichages
398
Réponses
6
Affichages
567
Retour