XL 2019 Onglet visible avec condition

Mapat

XLDnaute Occasionnel
Bonjour

Est-il possible à partir de la valeur d'une cellule (sup à zéro), de faire apparaitre un shape qui me permettrait d'afficher un autre onglet ?
Tant que la cellule est vide, le shape est invisible. La cellule est à zéro ou plus le shape apparait
Merci de votre aide et bon après-midi
 

Pièces jointes

  • Onglet visible.xlsm
    17 KB · Affichages: 4

wDog66

XLDnaute Occasionnel
Bonjour Mapat,

Si modification de la cellule ou d'une cellule de la feuille,
mettre ce code dans "Feuil1"
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  If [E2] > 0 Then
    Shapes("Rectangle 1").Visible = msoTrue
  Else
    Shapes("Rectangle 1").Visible = msoFalse
  End If
End Sub

A+
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,
faire apparaitre un shape qui me permettrait d'afficher un autre onglet
Pourquoi ne pas faire apparaitre directement une feuille ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If [E2] > 0 Then
        Sheets("TEST").Visible = -1: Sheets("TEST").Select
    Else
        Sheets("TEST").Visible = 0: Sheets("Feuil1").Select
    End If
End Sub
 

Pièces jointes

  • Classeur1.xlsm
    13.3 KB · Affichages: 6

Mapat

XLDnaute Occasionnel
Re
J'ai un petit souci en transcrivant sur mon fichier
J'ai supprimé le Else ce qui donne
Private Sub Worksheet_Change(ByVal Target As Range)
If [E2] > 0 Then
Sheets("TEST").Visible = -1: Sheets("TEST").Select
End If
End Sub
car ça ne fonctionnait pas
Ca marche nickel de cette façon mais j'ai mal présenté ma question.
La cellule e2 est vide mais pour déclencher la macro elle peut aussi être à 0
J'ai essayé If [E2] >= 0 Then
mais ça ne marche pas
Peut_être une idée ?
 

fanch55

XLDnaute Barbatruc
Bonjour à tous,

Pourquoi ne pas faire apparaitre directement une feuille ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If [E2] > 0 Then
        Sheets("TEST").Visible = -1: Sheets("TEST").Select
    Else
        Sheets("TEST").Visible = 0: Sheets("Feuil1").Select
    End If
End Sub
Salut @sylvanu, attention chaque changement sur la feuille Test provoquera l'affichage de Feuil1 si E2 > 0 ...
 

fanch55

XLDnaute Barbatruc
Bonsoir Fanch,

Non car la macro Worksheet_Change n'est effective que sur la feuil1.
Une modification de TST E2 ne la déclenchera pas.
C'est exact, mais j'ai inversé le nom des feuilles lors de ma réponse, le pb reste le même ...
sylvanu.gif
 

Mapat

XLDnaute Occasionnel
Re

Oui, ça marche
Le fait de ne pas remasquer la feuille ne gêne pas pas car c'est la fin de la procédure de mon fichier
Merci beaucoup de votre aide
Vous, tous les contributeurs, vous êtes vraiment des passionnés !
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
C'est exact, mais j'ai inversé le nom des feuilles lors de ma réponse, le pb reste le même ...
OK. Mais quand on modifie une autre cellule, comme E2 contient une valeur >0 il va sur la feuille test.
Ce qui me semble normal. C'est tout du moins comme ça que je l'avais interprété. :)
A Mapat de préciser si cela lui convient ou non, sinon il faut passer par un :
VB:
 If Not Intersect(Target, [E2]) Is Nothing Then
s'il veut que la cellule E2 ne soit testé que quand on modifie E2, et rien d'autre.
 

Discussions similaires

Statistiques des forums

Discussions
313 770
Messages
2 102 235
Membres
108 181
dernier inscrit
Chr1sD