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

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
C'est certainement moi qui m'explique mal lol

Dans mon fichier de travail, j'ai mes onglets "tous visibles",
Il y a un onglet pour lequel il y a des actions a faire :
- choix d'affectation,
- choix de date,
Quand ces choix sont faits, des codes d'exécutent.

Je voudrais que tant les actions ne sont pas faites sur cet onglet, qu'on ne puisse pas changer d'onglet.
(dans mon fichier test "action", le code pour la Feuil7 n'est qu'un exemple)

J'espère être plus clair mais pas sûr lol
lionel,
 

fanch55

XLDnaute Barbatruc
C'est certainement moi qui m'explique mal lol

Dans mon fichier de travail, j'ai mes onglets "tous visibles",
Il y a un onglet pour lequel il y a des actions a faire :
- choix d'affectation,
- choix de date,
Quand ces choix sont faits, des codes d'exécutent.

Je voudrais que tant les actions ne sont pas faites sur cet onglet, qu'on ne puisse pas changer d'onglet.
(dans mon fichier test "action", le code pour la Feuil7 n'est qu'un exemple)

J'espère être plus clair mais pas sûr lol
lionel,
Si c'est la seule cinématique attendue, pourquoi ne pas utiliser les voies habituelles ?
Code de la feuille Action:
VB:
Private Sub Worksheet_Deactivate()
    If Not Me.Valide Then Me.Activate
End Sub
Function Valide()
    Valide = False
    Select Case True
        Case Not Me.[C10] <> "":
        Case Not Me.[C11] <> "":
        Case Not Me.[C12] <> "":
      ' Case un calcul incorrect :
        Case Else: Valide = True
    End Select
End Function
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Si c'est la seule cinématique attendue, pourquoi ne pas utiliser les voies habituelles ?
Code de la feuille Action:
VB:
Private Sub Worksheet_Deactivate()
    If Not Me.Valide Then Me.Activate
End Sub
Function Valide()
    Valide = False
    Select Case True
        Case Not Me.[C10] <> "":
        Case Not Me.[C11] <> "":
        Case Not Me.[C12] <> "":
      ' Case un calcul incorrect :
        Case Else: Valide = True
    End Select
End Function
Re fanch55,
Effectivement, c'est peut-être le mieux mais je ne sais pas m'en servir.
Je vais voir,
lionel :)
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 424
Membres
103 206
dernier inscrit
diambote