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

XL 2013 Masquer Feuil1 si Feuil3 NON masquée

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Me re-voilou pour une nouvelle question.

Malgré mes recheches, je n'arrive pas à trouver la réponse.
Mais peut-être que ce n'est pas possible.

Ce que je voudrais faire :
Ici, je suis sur ma Feuill3

J'ai besoin que tant que je suis sur ma Feuill3, l'onglet Feuil1 ne puisse pas être sélectionné.


Auriez-vous la solution ? (petit fichier test joint)

Un grand Merci encore une fois.

Bonne journée à toutes et à tous
Amicalement,
arthour973,
 

Pièces jointes

Bonjour,
Ne sachant pas ce que tu souhaite faire exactement
Private Sub Worksheet_Deactivate()
Sheets("feuil1").Visible = False
End Sub
ou
Private Sub Worksheet_Activate()
Sheets("feuil1").Visible = False
End Sub
 
Bonjour CB60,

Merci de m'avoir répondu.

LOL, j'y avais pensé 😉
Mais je voulais savoir s'il y avait un moyen, sans passer par visible False, d'interdire la sélection (ou activation) de la feuil1 si je suis sur la Feuil3

Amicalement,
arthour973 🙂
 
Hey,

Un truc tout bête, directement au niveau de ta feuille concernée

Private Sub Worksheet_Activate()
Sheets("Feuil1").Activate
MsgBox "pas touche à la feuille 1 !"
Sheets("Feuil3").Select
End Sub

=> auto-select de la feuille 3 si l'utilisateur tente d'accéder à la première, avec msg d'avertissement (facultatif)

Johan
 
Bonjour CB60, Lionel, le Forum 🙂

@arthour973

À mettre dans le module de la feuil1

VB:
Private Sub Worksheet_Activate()
    With Feuil3
        If .Range("m2") <> "" Then    'ou une autre cellule
            Me.Activate
        Else
            .Activate
        End If
    End With
End Sub

EDIT: bonjour Johan 🙂
 
Dernière édition:
Bonjour @arthour973,

Un essai dans le fichier joint.Code dans module1 (une variable) et sinon code dans module de ThisWorkbook.

code dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
  DeFeuil3 = ActiveSheet.Name = "Feuil3"
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If Sh.Name = "Feuil1" Then If DeFeuil3 Then Feuil3.Activate
    DeFeuil3 = ActiveSheet.Name = "Feuil3"
End Sub

Code dans module1 :
VB:
Public DeFeuil3 As Boolean
 

Pièces jointes


Bonjour Johan 🙂

Merci pour ta réponse mais cela ne convient pas car il ne faut pas que la feuil1 soit activée
amicalement,
arthour973
 

Bnjour Mapomme,

Un grand merci de me répondre encore une fois 🙂

Je vais tester et je reviens
 
Re-Mapomme,

Evidemment ça marche mais j'ai pas compris le code.
Je vais tenter de comprendre.
Un grand merci à toi 😉
Amicalement,
arthour973
 
Bonjour Lionel, CB60, Lone-wolf, mapomme,

Ceci n'a pas été encore proposé, le code de Feuil3 :
Code:
Private Sub Worksheet_Deactivate()
If ActiveSheet.Name = "Feuil1" Then Me.Activate
End Sub
A+
 
Bonjour Lionel, CB60, Lone-wolf, mapomme,

Ceci n'a pas été encore proposé, le code de Feuil3 :
Code:
Private Sub Worksheet_Deactivate()
If ActiveSheet.Name = "Feuil1" Then Me.Activate
End Sub
A+

Re-Bonjour Job,

J'ai testé et ça marche 🙂 voir fichier joint
Un grand Merci à toi.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
32
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…