Conflit pour afficher ou masquer des onglets

Bonjour à tous,

J'ai créé une page de navigation avec laquelle je gère l'affichage de différents onglets.

J'ai donc inséré des boutons de navigation mais il y a un conflit dès lors que toutes les pages sont affichées.

En effet, lorsque toutes les pages sont affichées, je ne peux plus accéder aux onglets indépendamment.

Je joins mon fichier Excel 2010 en exemple.

Merci pour votre aide.

François

Salut Tchotcho31270, le fil

C'est normal tu essaie de sélectionner un feuille qui est cachée...

Change ton code comme ceci :

'NAVIGATION AFFICHE FEUILLE 2
Sub CommandButton1_Click()
    With ActiveWorkbook
        For i = 2 To .Sheets.Count
            If .Sheets(i).Name = "Feuil2" Then
                .Sheets(i).Visible = xlSheetVisible
                .Sheets(i).Activate
            Else
                .Sheets(i).Visible = xlSheetHidden
            End If
        Next
    End With
End Sub
'NAVIGATION AFFICHE FEUILLE 3
Sub CommandButton2_Click()
 With ActiveWorkbook
        For i = 2 To .Sheets.Count
            If .Sheets(i).Name = "Feuil3" Then
                .Sheets(i).Visible = xlSheetVisible
                .Sheets(i).Activate
            Else
                .Sheets(i).Visible = xlSheetHidden
            End If
        Next
    End With
End Sub

'NAVIGATION AFFICHE FEUILLE 4
Sub CommandButton3_Click()
 With ActiveWorkbook
        For i = 2 To .Sheets.Count
            If .Sheets(i).Name = "Feuil4" Then
                .Sheets(i).Visible = xlSheetVisible
                .Sheets(i).Activate
            Else
                .Sheets(i).Visible = xlSheetHidden
            End If
        Next
    End With
End Sub

Bonjour,

à tester,

Sub Tout_visible()
EnableEvents = False
With ActiveWorkbook
    For i = 1 To .Sheets.Count
      If Sheets(i).Name <> "Navigation" Then
        .Sheets(i).Visible = True
      End If
    Next
End With
End Sub

Sub Masquer_sauf_Feuil1()
EnableEvents = False
With ActiveWorkbook
    For i = 1 To .Sheets.Count
      If Sheets(i).Name <> "Navigation" Then
        .Sheets(i).Visible = False
      End If
    Next
End With
EnableEvents = True
End Sub

Sub CommandButton1_Click()
    With Sheets("Feuil2")
         .Visible = xlSheetVisible
         .Activate
    End With
End Sub

Sub CommandButton2_Click()
    With Sheets("Feuil3")
         .Visible = xlSheetVisible
         .Activate
    End With
End Sub

Sub CommandButton3_Click()
    With Sheets("Feuil4")
         .Visible = xlSheetVisible
         .Activate
    End With
End Sub

Bonsoir,

Merci pour vos deux solutions.

Bonne nuit.

François

re,

Merci Francois pour ce retour, au plaisir!

Voici un autre exemple en utilisant des formes dessinées au lieu des boutons (Formulaire ou ActiveX)

L’avantage

  • plus de choix de forme et de couleur
  • plus facile à coder

Bonjour i20100,

Effectivement, cette solution semble plus souple et accessible.

Néanmoins, ce qui me gène, c'est qu'il n'y a pas l'effet d'enfoncement sur les boutons.

Merci pour cet exemple qui trouvera preneur certainement.

François

Bonjour,

Ahhh ! Encore un soucis que je n'arrive pas à régler. J'ai optimisé ma page de navigation en y insérant des cases à cocher.

L'idée, c'est qu'elles fonctionnent comme les boutons. Alors j'ai appliqué bêtement le code des boutons dans les checkBox et bien entendu, ça ne fonctionne pas.

J'arrive à afficher la page en question mais lorsque je décoche, la page en question s'affiche quand même.

Idéalement, il faudrait que l'action de décocher n'ait aucune incidence ou plus précisément il faudrait qu'il ne se passe rien puisque si décoché, pas de page a afficher (doit rester sur la page "Navigation").

Je joins un modèle en PJ.

Merci encore pour votre aide.

François

Bonjour

il faut utiliser les codename car la tu a pas donner les nom a tes onglets

et tu peux pas en ajouter

a voir

Bonjour archer et les lecteurs,

L'idée est bonne mais cela perturbe l'organisation de ma page.

Si c'était possible avec des cases à cocher, ce serait super.

A bientôt.

François.

Bonjour,

Problème résolu par gmb,

Je joins le fichier corrigé.

Bonne journée.

François

16navigation-v1.xlsm (38.94 Ko)

merci pour ce retour et bonne continuation,

ps/ s.v.p. n'oublies pas de marquer la question comme étant résolu.

resolu 1

Salut Tchotcho31270, le fil

Pour tes ChecBox tu peux utiliser directement leurs valeurs

Private Sub CheckBox2_Click()
    Sheets("Feuil3").Visible = CheckBox2.Value
End Sub

Merci.

Bonne soirée.

François

Rechercher des sujets similaires à "conflit afficher masquer onglets"