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

Microsoft 365 Ne pas sortir d'un onglet sauf en exécutant une macro

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,
Je vous souhaite un beau dimanche

Je n'arrive pas à coder :
Je voudrais qu'il ne soit pas possible de changer d'onglet sauf UNIQUEMENT en exécutant la macro "action"
Et qu'il ne puisse pas être possible de changer d'onglet en cliquant sur un autre onglet


Pourriez-vous m'aider,
Je joins un p'tit fichier test.
Grands Mercis
Amicalement,
lionel,
 

Pièces jointes

  • Revient à onglet actif.xlsm
    32.9 KB · Affichages: 8
Bonjour usine à gaz, dudu2, mapomme, fanch55, le forum

Une autre façon, toute simple.

Bien cordialement, @+

code dans feuille action
VB:
Private Sub Worksheet_Activate()
ActiveWindow.DisplayWorkbookTabs = False
End Sub
sub action
Code:
Sub action()
ActiveWindow.DisplayWorkbookTabs = True
Application.Goto reference:=ThisWorkbook.Sheets("Feuil7").Range("G6")
ActiveCell.Value = "action exécutée"
End Sub
 

Pièces jointes

  • Revient à onglet actif - Copie.xlsm
    29.7 KB · Affichages: 1

Dudu2

XLDnaute Barbatruc
@Usine à gaz,
Je trouve le code de @Yeahou très pertinent.
Il masque les onglets quand on est sur la feuille "action" car ça n'a aucun intérêt de les voir (enfin à priori) puisqu'on ne peut pas y aller. Et il les démasque quand on a cliqué sur le bouton, ils sont donc tous affichables.
 

Pièces jointes

  • Revient à onglet actif 2.xlsm
    27.7 KB · Affichages: 1

Usine à gaz

XLDnaute Barbatruc
lol Mais je ne veux pas masquer les onglets de mon fichier de travail car je travaille sur tous mes onglets.
Je voudrais simplement que, quand je suis dans l'onglet "action", on ne puisse en sortir qu'en exécutant la macro
 

Usine à gaz

XLDnaute Barbatruc
re,

sinon, encore plus simple, modifie juste le code de la sub action

Cordialement, @+
VB:
Sub action()
ActiveWindow.DisplayWorkbookTabs = True
End Sub
lol Mais je ne veux pas masquer les onglets de mon fichier de travail car je travaille sur tous mes onglets.
Je voudrais simplement que, quand je suis dans l'onglet "action", on ne puisse en sortir qu'en exécutant la macro
 

fanch55

XLDnaute Barbatruc
Bon, pour répondre à la dernière spécif :
dans Thisworkbook :
VB:
Private Sub Workbook_Open()
    Workbook_SheetActivate Worksheets(ActiveSheet.Name)
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    ActiveWindow.DisplayWorkbookTabs = Sh.Name <> "action"
End Sub
 
re,

sinon autre code avec une variable booleenne publique, mais pour moi, cela fait la mème chose avec un effet visuel moindre
si tu veux que l'action possible reste permanente, enlève le Val_Action = False à la fin

Cordialement, @+
code de la feuille action
VB:
Private Sub Worksheet_Deactivate()
If Not Val_Action Then ThisWorkbook.Sheets("action").Select
End Sub
code de la sub action
Code:
Public Val_Action As Boolean
Sub action()
Val_Action = True
Application.Goto reference:=ThisWorkbook.Sheets("Feuil7").Range("G6")
ActiveCell.Value = "action exécutée"
Val_Action = False
End Sub
 

Pièces jointes

  • Revient à onglet actif 2 - Copie.xlsm
    29.2 KB · Affichages: 1
Dernière édition:

Discussions similaires

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