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

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
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
@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.
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
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
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

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA