IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Masquer/Afficher onglet si conditionné


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Par défaut Masquer/Afficher onglet si conditionné
    Bonjour à tous,

    Je suis débutant en VBA et j'ai un problème qui devrait vous paraître très simple. Je souhaiterais masquer des onglets mais y faire appel en fonction de la réponse d'un utilisateur.

    Mon premier onglet Accueil pose une question à l'utilisateur:
    En quel mois êtes vous nés?

    L'utilisateur choisit alors sa réponse dans une liste (issue de Données Validation).

    Je voudrais que cela permette l'ouverture de l'onglet "NOM MOIS" (exemple: ouverture uniquement de l'onglet Février s'il est né en février) qui correspond à sa réponse. Je veux que les autres onglets restent masqués.

    Lorsque je décide de masquer un onglet avec le "clic droit", je ne peux pas y faire appel par la suite. Il faut qu'il soit en position "Afficher". Il semblerait que je puisse obtenir un meilleur résultat avec VBA.

    Bien cordialement,

    Nicolas

    N'hésitez à demander des infos complémentaires.

  2. #2
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonsoir henrynv,

    Une tentative à adapter, il faut que la variable x recueille la réponse à ta validation de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub afficheongletx()
    '---------------------------------------------------------------------------------------
    ' Macro qui affiche le "mois de mai" qui était un onglet masqué
    '---------------------------------------------------------------------------------------
     
    Dim Fe As Worksheet
    Dim x As String
     
    ' cela peut être issue d'une validation de données
    x = "mai"
     
        ' on parcours tout le classeur
        For Each Fe In ThisWorkbook.Worksheets
     
            ' quand le nom du mois est trouvé, on rend l'onglet visible
            If Fe.Name = x Then
                Sheets(x).Visible = True
            End If
     
        Next Fe
     
    End Sub
    Bertrand

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Par défaut
    Merci beaucoup Bertrand, ta macro fonctionne parfaitement bien!

    je voudrais juste rajouter un élément: faire en sorte qu'on ne puisse pas ouvrir plus d'un onglet (en dehors de l'onglet Accueil) à la fois. En d'autres termes, si l'utilisateur ouvre l'onglet Mai mais souhaite finalement l'onglet Février, je voudrais qu'Excel ferme automatiquement l'onglet Mai

    As-tu un idée?

    Bonne journée à toi,

    Nicolas

  4. #4
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonsoir henrynv,

    Il suffit de modifier le premier code : si la feuille est "mai" alors afficher sinon si la feuille est "Accueil" alors afficher sinon dans tous les autres cas masquer.

    Tu imbriques des si et des sinons (il y a d'autres méthodes quand les conditions sont plus nombreuses)

    Voilà :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub afficheongletx()
    '---------------------------------------------------------------------------------------
    ' Macro qui affiche le "mois de mai" qui était un onglet masqué, qui masque les autres onglets sauf Accueil
    '---------------------------------------------------------------------------------------
     
    Dim Fe As Worksheet
    Dim x, y As String
     
     
    ' cela peut être issue d'une validation de données
    x = "mai"
    y = "Accueil"
     
        For Each Fe In ThisWorkbook.Worksheets
     
            If Fe.Name = x Then
                Sheets(x).Visible = True
            Else
                If Fe.Name = y Then
                    Sheets(y).Visible = True
                Else
                    Fe.Visible = False
                End If
            End If
     
        Next Fe
     
    End Sub
    Bertrand

Discussions similaires

  1. [XL-2010] Ruban - Afficher ou masquer un onglet personnalisé
    Par SuzyR dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 12/12/2013, 18h16
  2. [AC-2010] Afficher et masquer un onglet
    Par Mobydisk21 dans le forum IHM
    Réponses: 2
    Dernier message: 05/12/2013, 22h01
  3. [XL-2003] Masquer/Afficher des onglets
    Par Nikodemus dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/11/2012, 14h17
  4. [XL-2007] Afficher onglet masquer
    Par maxval18 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/09/2012, 13h16
  5. [XL-2007] Afficher et masquer des onglets
    Par Aliciaymilie dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2010, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo