Supprimer les filtres s'il y en a

  • Initiateur de la discussion Seb
  • Date de début
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
 

Luki

XLDnaute Accro
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+
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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
 
S

Seb

Guest
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...
 

Moa

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
312 558
Messages
2 089 596
Membres
104 219
dernier inscrit
agateponcet