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

Empêcher le changement de feuille

  • Initiateur de la discussion Initiateur de la discussion gvives
  • Date de début Date de début

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 !

gvives

XLDnaute Occasionnel
Bonjour à tous,

Une petite question...

Comment peux t'on bloquer le changement d'onglet en VBA tant qu'une cellule n'est pas remplie sachant que j'ai des liens hypertextes vers d'autres feuilles sur cette feuille.

Merci d'avance pour votre aide...
 
Re : Empêcher le changement de feuille

Bonsoir gvives,

Voici un fichier exemple de ce qu'il est possible de faire.

Sur Feuil3, la cellule A1 est actuellement vide et le lien hypertexte en cellule D1 est d&sactivé. Si tu écris "oui" en A1, le lien s'active et un clic dessus affiche Feuil1.

Ceci reste bien entendu à adapter à ton fichier, mais je pense que tu as là les éléments nécessaires pour y parvenir.

Cordialement.
 

Pièces jointes

Re : Empêcher le changement de feuille

Bonsoir,
Au plus simple
Dans thisWorkbook
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name <> "feuil1" And Feuil1.Range("A1") = "" Then
Feuil1.Activate
End If
End Sub

edit : bonsoir papou 🙂 et bonne année

A+
kjin
 
Re : Empêcher le changement de feuille

RE :

Oups, désolé, en me relisant je viens de m'apercevoir que j'ai répondu à côté de la plaque.

Voici donc le fichier modifié. Tant que Feuil3.A1 est différent de "oui", le clic sur l'onglet d'une autre feuille est annulé.

Bien qu'ils ne devraient plus être utiles dans ce cas, j'ai laissé l'action sur les hyperliens.

Cordialement.


Edit :

Bonsoir kjin, tous mes voeux également, et les plus sincères.
Bien ta solution, moi je n'ai pas pensé à utiliser le Workbook_SheetActivate du module ThisWorkbook. Ca évite de répéter le code sur chacune des feuilles. Et pourtant, je connais bien cette procédure.

Bonsoir David84, meilleurs voeux pendant qu'on y est.
 

Pièces jointes

Dernière édition:
Re : Empêcher le changement de feuille

Bonsoir,
à placer dans le module de la feuille :
Code:
Dim NomFeuille As String

Private Sub Worksheet_Activate()
NomFeuille = ActiveSheet.Name
End Sub

Private Sub Worksheet_Deactivate()
If Range("A1").Value = vbNullString Then
    MsgBox "cellule A1 vide !"
    Worksheets(NomFeuille).Activate
End If
End Sub
A+
Edit : bonsoir papou-net
ReEdit : désolé kjin, je ne t'avais pas vu !
 
Dernière édition:
- 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

D
  • Question Question
Réponses
5
Affichages
248
Didierpasdoué
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…