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

Microsoft 365 Macro pour revenir automatiquement au premier onglet à la fermeture ( fichier à plusieurs onglets)

Daniel200666

XLDnaute Occasionnel
bonjour à tous
j'espère que vous allez bien à l'approche d'un WE de trois jours !
j'ai un classeur de production de plusieurs onglets et je voudrais pouvoir, au moment où les commerciaux ferment le classeur, qu'il puisse s'ouvrir automatiquement sur l'onglet 1 qui est l'onglet principal de renseignements ( les autres sont des bases ou des TCD)
Quelqu'un a-t-il déjà créé cette macro svp ?
Merci beaucoup et bonne journée
Daniel
 

cp4

XLDnaute Barbatruc
Bonjour,

Tu fais Alt+F11, ouvre le VBE (image)

Double-clic sur ThisWorkbook et coller code ci-dessous dans la fenêtre de droite.
Enregistrer le fichier, le fermer et l'ouvrir pour s'en rendre compte.

VB:
Private Sub Workbook_Open()
Sheets(1).Activate
End Sub
Bonne journée.
 

job75

XLDnaute Barbatruc
Donc dans ThisWorkbook :
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets(1)
    .Visible = xlSheetVisible 'si la feuille est masquée
    .Activate
End With
Me.Save 'enregistre le classeur
End Sub
Avec une Workbook_Open :
Code:
Private Sub Workbook_Open()
With Sheets(1)
    .Visible = xlSheetVisible 'si la feuille est masquée
    .Activate
End With
Me.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
 

Daniel200666

XLDnaute Occasionnel
@cp4 , merci beaucoup pour cette macro
je regarde et je vous reviens vers all the members pour vous dire !!!
 

Daniel200666

XLDnaute Occasionnel
j'ai pensé écrire cette macro que j'ai issu d'une macro pour enlever tous les filtres à la fermeture
Pourriez vous me donner votre avis, svp ?

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Dim Ws As Worksheet
On Error Resume Next


For Each Ws In Worksheets
Sheets(1) .Activate
Next
Application.ScreenUpdating = True
End Sub
 

cp4

XLDnaute Barbatruc
Si j'ai bien compris, à tester.
Bonjour @job75
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Dim Ws As Worksheet
   For Each Ws In Worksheets
      If Ws.AutoFilterMode = True Then Ws.AutoFilterMode = False
   Next
   Sheets(1).Activate
End Sub
 

Daniel200666

XLDnaute Occasionnel
Bonjour à tous
je reviens vers vous sur cet ancien post car je ne comprends pas sur mon fichier la raison pour laquelle, en application de cette macro, les filtres sont effacés à la fermeture
je souhaiterais pouvoir conserver à minima, pour les multi-utilisateurs, la possibilité de trier les colonnes
Pourriez vous m'aider svp à conserver la possibilité de filtrer ?
Merci et bonne soirée
 

cp4

XLDnaute Barbatruc
Bonjour,

Je te réponds rapidement en prenant mon café matinal.
Ouvre une autre discussion, tu auras plus de chance pour avoir des propositions de solution.
If Ws.AutoFilterMode = True Then Ws.AutoFilterMode = False
signifie un filtre est appliqué, le désactiver
nb: voir réponse de @job75 plus haut
Bonne journée.
 

Discussions similaires

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