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,
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
Ce n'est pas ce que décrit la demande initiale, ou je n'ai pas bien compris ...
La demande serait plutôt : ne pas pouvoir cliquer sur des onglets tant qu'on n'a pas fait Action ?
Il doit y avoir une finalité qui m'échappe ...
@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.
@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
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
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
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