Affichage onglet avec conditions

Bonjour à tous,

J'aurais besoin d'un petit coup de pouce. Dans un classeur excel , en fonction de la valeur d'une cellule (IT ou BSA) dans ma première feuille, je veux faire apparaitre un onglet appelé IT si valeur IT ou bien l'onglet appelé BSA si valeur BSA.
J'ai commencé le code ainsi :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("G10") = " IT" Then
Sheets("IT").Visible = True
Else
Sheets("IT").Visible = False
End If
End Sub

Cela fonctionne donc bien pour l'affichage de l'onglet IT.. en revanche je ne sais pas comment faire pour dire : et si la valeur est BSA dans la meme cellule alors c'est l'ongle BSA qui s'affiche...

Quelqu'un peut me dire comment faire ?

Merci à tous et bonne journée,

Bonjour,

Essayez ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("G10")) Is Nothing Then
        If Target = "IT" Then
            Sheets("IT").Visible = True
            Sheets("BSA").Visible = False
        ElseIf Target = "BSA" Then
            Sheets("IT").Visible = False
            Sheets("BSA").Visible = True
        End If
    End If
End Sub

Cdlt

Merci Arturo 83,

Cela se comporte pas trop mal en effet. J'ai juste un souci lorsque j'appelle une des valeurs dans la cellule que ce soit IT ou BSA, l'onglet se présente bien. En revanche si je vide la cellule (efface les données) l'onglet est toujours visible, il ne disparait pas or, je voudrais que si vide ou si autre valeur que IT ou BSA alors aucun de ces 2 onglets ne doit apparaitre...

Il suffit d'ajouter cette condition
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("G10")) Is Nothing Then
        If Target = "IT" Then
            Sheets("IT").Visible = True
            Sheets("BSA").Visible = False
        ElseIf Target = "BSA" Then
            Sheets("IT").Visible = False
            Sheets("BSA").Visible = True
        ElseIf Target = "" Then
            Sheets("IT").Visible = False
            Sheets("BSA").Visible = False
        End If
    End If
End Sub

Cdlt

Ha ben là cela ne marche pas du tout... voilà ce que j'ai :

image

Vous êtes sûr d'avoir copié la macro au bon endroit?

sinon pour être tranquille, copiez ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Not Intersect(Target, Range("G10")) Is Nothing Then
        If Target = "IT" Then
            Sheets("IT").Visible = True
            Sheets("BSA").Visible = False
        ElseIf Target = "BSA" Then
            Sheets("IT").Visible = False
            Sheets("BSA").Visible = True
        ElseIf Target = "" Then
            Sheets("IT").Visible = False
            Sheets("BSA").Visible = False
        End If
    End If
Sortie:
    Application.EnableEvents = True
End Sub

quittez excel et réouvrez-le

Oui dans la feuille qui porte la cellule

j'ai complété le dernier message

C'est bon cette fois. Mille fois merci !

Rechercher des sujets similaires à "affichage onglet conditions"