Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

utiliser la fonction 'afficher tout' avec une macro

T

toto

Guest
bonjour forum,

je souhaiterai une fois de plus les conseil du forum pour résoudre un petit problème.

je souhaiterai faire une macro qui reproduierai la fonction afficher tout.

en effet j'ai une page avec de nombreuse ligne et de nombreux filtres et je souhaiterai faciliter les choses en mettant une macro qui me réaffichera tout.

merci d'avance pour tout.

cordialement toto.
 
L

Lapou

Guest
Bonjour toto et le Forum !!!

et voilà ton code à mettre :

Sub AutoFilterShowAll()
With Sheets("Feuil1")
If .FilterMode = True Then .ShowAllData
End With
End Sub

je suis fier d'être le 1er à répondre ;-) lol

Tchao
 
G

Gérard DEZAMIS

Guest
Bonjour Toto et Lapou

Bien joué pour la place de premier et aussi pour la qualité de ta formule en effet le piège est qu'il fallait vérifier si le filtre était actif avant de lui demander d'afficher "tout" sinon ... plantage assuré.
Bravo
@+
GD
 

krissator

XLDnaute Nouveau
Re : utiliser la fonction 'afficher tout' avec une macro

Avant de relancer ce vieux sujet, merci à ceux qui aident les débutants qui n'en veulent comme moi !

Ma question :

J'aimerai à l'ouverture de mon fichier, que le classeur s'ouvre sur le bon onglet et que des macros déja existantes se lancent et notament une macro qui permet d'afficher tout (d'où le lien avec le topic ;-p)

Voilà ce que j'ai saisi :
Sub DEMARRAGE()
Private Sub Workbook_Open()
On Error GoTo ExistePas
Sheets(Format(Now, "yyyy")).Activate
On Error GoTo 0
Exit Sub

ExistePas: Sheets(1).Activate
Module1.ActiverMacroPerso

End Sub

... mes feuilles ont toute pour titre une année, le module ci-dessus permet d'ouvrir systématiquement sur l'année en cours (j'ai des collègues un peu bourrins, ça limite la casse). Maintenant, j'aimerai améliorer encore la chose avec le "afficher tout" qui marche bien une fois le fichier ouvert, mais pas directement à l'ouverture ^^

Merci d'avance pour vos lumières hô grands dieux manipulateurs chevronnés d'Excel !
 

Banzai64

XLDnaute Accro
Re : utiliser la fonction 'afficher tout' avec une macro

bonsoir

Ta macro ne s'exécute que si la page n'existe pas


Ou alors je n'ai rien compris (J'ai l'habitude)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : utiliser la fonction 'afficher tout' avec une macro

Bonsoir à tous


Au moins voila quelqu'un qui utilise le moteur de recherche du forum


2004, cela nous rajeunit pas


Ceci dit:
ShowAllData

s'utilise quand un filtre est actif sur une feuille d'un classeur.

Cela ne sert pas à autre chose.
 

krissator

XLDnaute Nouveau
Re : utiliser la fonction 'afficher tout' avec une macro

Merci pour vos réponses... mais bon, ça marche pas :-/
Bref, je pense qu'il faut que je rectifie :

ça, ça marche :

Sub DEMARRAGE()
Private Sub Workbook_Open()
On Error GoTo ExistePas
Sheets(Format(Now, "yyyy")).Activate
On Error GoTo 0
Exit Sub

ExistePas: Sheets(1).Activate

End Sub

...et ça, ça me permet d'ouvrir systématiquement sur la feuille qui porte pour titre, l'année en cours... si j'ouvre ce fichier 3 ans après la dernière feuille, il est sensé s'ouvrir sur la dernière année créée.
Y a peut être plus simple, et je suis prenneur, mais la modif de Banzai m'ouvre le débogueur :-S

Mais sans aller jusqu'à refondre cette macro qui finalement, donne satisfaction, j'aimerais que sur sa lancée, la macro enlève tous les filtres s'ils existent.

Le module donné plus haut :
Sub AutoFilterShowAll()
With Sheets("Feuil1")
If .FilterMode = True Then .ShowAllData
End With
End Sub

Semble pouvoir assurer ce que je recherche, mais je n'arrive pas à l'intégrer sans que ça plante. D'autant que le "With Sheets("Feuil1")" ne marche que si ma feuille s'appelle "Feuil1", je peux le remplacer par "With ActiveSheet" ?

J'espère avoir été plus clair, et je vous remercie d'avance pour vos conseils avisés ;-)
 

Banzai64

XLDnaute Accro
Re : utiliser la fonction 'afficher tout' avec une macro

Bonjour

Testé et vérifié (Ou alors je ne comprends plus rien)

Dans ThisWorkBook colle

VB:
 Private Sub Workbook_Open()
  On Error Resume Next
  Sheets(Format(Now, "yyyy")).Activate
  If Err > 0 Then
    Sheets(1).Activate
  End If
  On Error GoTo 0
  Module1.ActiverMacroPerso
End Sub



et ensuite dans Module1


VB:
 Sub ActiverMacroPerso()
  With ActiveSheet
    If .FilterMode = True Then .ShowAllData
 End With
End Sub


Si la feuille (Année) existe elle sera activée sinon en cas d'erreur cela sera (Feuil1)

Ensuite le test se fera
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…