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

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 Johan 🙂

Merci pour ta réponse mais cela ne convient pas car il ne faut pas que la feuil1 soit activée
amicalement,
arthour973
 
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

Bnjour Mapomme,

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

Je vais tester et je reviens
 
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
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+

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
Retour