Microsoft 365 Enlever tous les tris automatiquement en fermant un fichier Excel

Daniel200666

XLDnaute Junior
Bonsoir à tous
existe t il une possibilité de « détrier » les colonnes automatiquement en fermant un fichier Excel
certains collaborateurs laissent les colonnes avec leur tris, ce qui n est pas sympa ni simple pour les autres qui viennent sur le fichier commun
merci beaucoup pour votre aide
bonne soirée à tous
 
Solution
Bonsoir,
Ne connaissant pas ton niveau dans la connaissance des VBA, j'ai mis quelques explications dans la feuille de codification. Ce sont des commentaires qui peuvent être enlevés
1682620499724.png

Le programme que j'ai mis est celui de Phil (je me suis juste permis d'ajouter une instruction pour réinitialiser la MAJ des écrans)
Grâce à ce programme, dès qu'un opérateur demandera de fermer le classeur, le VBA mettra tous les filtres de toutes les Feuilles au maximum de leur visualisation.
Ensuite Excel demandera si l'on veut sauver et il faudra répondre oui pour que cette situation soit enregistrée.
Tu peux copier ce VBA dans ton classeur ou bien nous envoyer ton classeur et nous te le mettrons en place (n'oublie pas d'enlever toutes...

CHRIS1945

XLDnaute Occasionnel
Bonjour à tous,
J'ajouterai de mettre cette instruction dans un VBA évènementiel "Close" dans l'onglet "Thisworkbook" dans le choix au-dessus = Workbook" et dans le choix de droite "BeforeClose"
spécifier la feuille où il faut réinitialiser les filtres et mettre l'instruction
1682587018908.png



Il faut naturellement sauver le classeur comme pouvant accepter les macros.
Si besoin de plus d'explications n'hésite pas à demander.
A+
Chris
 

Pièces jointes

  • 1682586228698.png
    1682586228698.png
    5 KB · Affichages: 12
  • test-filtre.xlsm
    14.7 KB · Affichages: 3
Dernière édition:

Daniel200666

XLDnaute Junior
Bonjour à tous,
J'ajouterai de mettre cette instruction dans un VBA évènementiel "Close" dans l'onglet "Thisworkbook" dans le choix au-dessus = Workbook" et dans le choix de droite "BeforeClose"
spécifier la feuille où il faut réinitialiser les filtres et mettre l'instruction
Regarde la pièce jointe 1169072


Il faut naturellement sauver le classeur comme pouvant accepter les macros.
Si besoin de plus d'explications n'hésite pas à demander.
A+
Chris

Bonjour à tous,
J'ajouterai de mettre cette instruction dans un VBA évènementiel "Close" dans l'onglet "Thisworkbook" dans le choix au-dessus = Workbook" et dans le choix de droite "BeforeClose"
spécifier la feuille où il faut réinitialiser les filtres et mettre l'instruction
Regarde la pièce jointe 1169072


Il faut naturellement sauver le classeur comme pouvant accepter les macros.
Si besoin de plus d'explications n'hésite pas à demander.
A+
Chris
Bonjour Chris
Merci beaucoup mais je pars de loin ... je ne sais même pas où aller pour enregistrer cela ... je comprends que je dois créer une macro sur "Macros" et la nom "Feuil1" correspond au nom de ma feuille ? et si c'est un classeur avec plusieurs feuilles, comment dois je renseigner la bonne feuille, stp ? merci
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@Daniel200666
Un peu de lecture
A partir de ==> 2)Allez dans le code VBA


Si tu as bien lu et compris ajouter le code suivant devrait être un jeu d'enfant ;)

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Dim Ws As Worksheet
On Error Resume Next
For Each Ws In Worksheets
    Ws.ShowAllData
Next
End Sub

Merci de ton retour

@Phil69970
 

Daniel200666

XLDnaute Junior
Bonjour à tous

@Daniel200666
Un peu de lecture


Si tu as bien lu et compris ajouter le code suivant devrait être un jeu d'enfant ;)

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Dim Ws As Worksheet
On Error Resume Next
For Each Ws In Worksheets
    Ws.ShowAllData
Next
End Sub

Merci de ton retour

@Phil69970
bonjour Phil69970, je vais regarder cela dès maintenant et je te tiens au courant
en tout cas merci pour ton aide car là ... ( je n'ai pas trouvé d'emoji d'un homme qui coule ...)
 

CHRIS1945

XLDnaute Occasionnel
Bonsoir,
Ne connaissant pas ton niveau dans la connaissance des VBA, j'ai mis quelques explications dans la feuille de codification. Ce sont des commentaires qui peuvent être enlevés
1682620499724.png

Le programme que j'ai mis est celui de Phil (je me suis juste permis d'ajouter une instruction pour réinitialiser la MAJ des écrans)
Grâce à ce programme, dès qu'un opérateur demandera de fermer le classeur, le VBA mettra tous les filtres de toutes les Feuilles au maximum de leur visualisation.
Ensuite Excel demandera si l'on veut sauver et il faudra répondre oui pour que cette situation soit enregistrée.
Tu peux copier ce VBA dans ton classeur ou bien nous envoyer ton classeur et nous te le mettrons en place (n'oublie pas d'enlever toutes les infos confidentielles - tu mets des infos bidons à la place)
Est-ce plus clair ainsi ?? Sinon pose les questions nécessaires.
Bon courage
Chris
 

Pièces jointes

  • test-filtre2.xlsm
    16.6 KB · Affichages: 6

Daniel200666

XLDnaute Junior
Bonsoir,
Ne connaissant pas ton niveau dans la connaissance des VBA, j'ai mis quelques explications dans la feuille de codification. Ce sont des commentaires qui peuvent être enlevés
Regarde la pièce jointe 1169131
Le programme que j'ai mis est celui de Phil (je me suis juste permis d'ajouter une instruction pour réinitialiser la MAJ des écrans)
Grâce à ce programme, dès qu'un opérateur demandera de fermer le classeur, le VBA mettra tous les filtres de toutes les Feuilles au maximum de leur visualisation.
Ensuite Excel demandera si l'on veut sauver et il faudra répondre oui pour que cette situation soit enregistrée.
Tu peux copier ce VBA dans ton classeur ou bien nous envoyer ton classeur et nous te le mettrons en place (n'oublie pas d'enlever toutes les infos confidentielles - tu mets des infos bidons à la place)
Est-ce plus clair ainsi ?? Sinon pose les questions nécessaires.
Bon courage
Chris
bonjour

c'est extra extra !!! alors mon niveau .....bon 0, voire en dessous car je ne sais même pas la signification de l'acronyme .... mais j'apprends et ça me plait pas mal !! Merci en tout cas
 

CHRIS1945

XLDnaute Occasionnel
Bonjour Daniel et Phil,
Content que cela convienne. J'espère que tu as pu mettre cela en place dans ton classeur.

Alors pour ce qui est de l'acronyme : Virtual Basic Application
Si tu veux apprendre, je te conseille : "Programmer en VBA pour les nuls". L'auteur vulgarise très bien cette matière qui peut en effrayer plus d'un.

Pour Phil : tu as raison mais ce n'est pas le cas pour tous les traitements ainsi celui qui traite des évènements reste actif à la sortie du programme. Alors, par sécurité, j'ai l'habitude d'annuler toutes les gestions d'application dès que ce n'est plus nécessaire.

Bonne continuation
Chris
 

Daniel200666

XLDnaute Junior
Bonjour Daniel et Phil,
Content que cela convienne. J'espère que tu as pu mettre cela en place dans ton classeur.

Alors pour ce qui est de l'acronyme : Virtual Basic Application
Si tu veux apprendre, je te conseille : "Programmer en VBA pour les nuls". L'auteur vulgarise très bien cette matière qui peut en effrayer plus d'un.

Pour Phil : tu as raison mais ce n'est pas le cas pour tous les traitements ainsi celui qui traite des évènements reste actif à la sortie du programme. Alors, par sécurité, j'ai l'habitude d'annuler toutes les gestions d'application dès que ce n'est plus nécessaire.

Bonne continuation
Chris
j'ai "validé" ton dernier message qui reprenait la macro de Phil avec tes compléments; cela donne une réponse complète je pense; en tout cas top de chez top
je vais regarder ce bouquin, et merci pour ce tuyau
 

Daniel200666

XLDnaute Junior
Bonsoir,
Ne connaissant pas ton niveau dans la connaissance des VBA, j'ai mis quelques explications dans la feuille de codification. Ce sont des commentaires qui peuvent être enlevés
Regarde la pièce jointe 1169131
Le programme que j'ai mis est celui de Phil (je me suis juste permis d'ajouter une instruction pour réinitialiser la MAJ des écrans)
Grâce à ce programme, dès qu'un opérateur demandera de fermer le classeur, le VBA mettra tous les filtres de toutes les Feuilles au maximum de leur visualisation.
Ensuite Excel demandera si l'on veut sauver et il faudra répondre oui pour que cette situation soit enregistrée.
Tu peux copier ce VBA dans ton classeur ou bien nous envoyer ton classeur et nous te le mettrons en place (n'oublie pas d'enlever toutes les infos confidentielles - tu mets des infos bidons à la place)
Est-ce plus clair ainsi ?? Sinon pose les questions nécessaires.
Bon courage
Chris
Rebonjour. alors là c'est grave ...j'ai juste fait un copier/coller et en voulant enregistrer cette macro, j'ai un message par lequel :
Les fonctionnalités suivantes ne peuvent pas être enregistrées dans des classeurs sans macros
"Projet VBA"
Pour enregistrer avec ces fonctionnalités, cliquez sur Non, puis sélectionner un type de fichier prenant en charge les macros dans la liste Type de Fichier
Pour continuer à enregistrer en tant que classeur sans macro, cliquez sur Oui"

Ce que je ne comprends pas c'est que je crée une macro mais on me le refuse car il n'y a pas de macro ...
Désolé d'être un peu boulet là ....
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 316
Membres
103 176
dernier inscrit
jean.yvesjean.yves