Problème de la valeur "Range" renvoyée dans code VBA

Bonjour,

J'ai un petit souci avec le code suivant:

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("A1") = "OUI" Then

ActiveSheet.ChartObjects("Graphique 1").Visible = True

Else

ActiveSheet.ChartObjects("Graphique 1").Visible = False

End If

End Sub

Tout fonctionne bien si la valeur "OUI" ou autre est directement entrée dans la cellule A1, mais pas cette dernière contient une formule qui fait référence à une autre cellule (par ex. =B1). Dans ce deuxième cas, est-ce que Range("A1") renvoie "=B1" au lieu de "OUI" ?

Je vous remercie par avance pour l'aide que vous pourrez m'apporter à la résolution de ce problème.

Bonjour et bienvenue sur le forum

Peu importe si dans A1 il y a une formule ou texte. Ton graphique sera visible si la valeur de A1est « OUI »

Mais il ne sera pas visible si la valeur est autre chose et en particulier si tu as « Oui » ou « oui »

Bye !

Merci beaucoup pour la réponse et pour la bienvenue !

Effectivement, ça fonctionne dans la même feuille. Il semble que c'était la casse mal mise en forme.

Ceci dit, j'ai le même problème si les données proviennent d'une autre feuille. J'ai joint un fichier résumé avec 2 graphiques. Le bleu fonctionne. Son apparition/disparition dépend de la cellule "I1" dont la valeur = celle entrée dans "J1" sur la même feuille.

Le rouge ne fonctionne pas. Son apparition/disparition dépend de la cellule "A1" dont la valeur = celle entrée dans "A1" sur la feuille 2.

Des idées pour résoudre ce problème (si c'en est un !) ? Merci d'avance !

La visibilité ou non visibilité du graphique rouge est subordonné à la macro événementielle ‘’ Private Sub Worksheet_Change(…)’’ attachée à la feuille 1

Pour la déclencher, il ne suffit donc pas de modifier la valeur de la cellule A1 de la feuille 2.

Il faut aussi valider la cellule A1 de la feuille 1, même s’il y a une formule.

Re-bonjour,

Je commence à entrevoir le problème, mais pas suffisamment pour le résoudre.

Donc, comment valider cette valeur A1 de la feuille 1 ? Quelle modification dois-je apporter au code ?

Merci!

Bonjour,

Une proposition : code à placer dans le module Feuil2(Feuil2).

Cdlt.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
    Set ws = Worksheets("Feuil1")
    If Range("A1") = "OUI" Then
        ws.ChartObjects("Graphique 1").Visible = True
    Else
        ws.ChartObjects("Graphique 1").Visible = False
    End If
    Set ws = Nothing
End Sub

Bonjour,

Merci pour la réponse ! J'ai testé le code sur mon fichier original et ça fonctionne bien.

En fait, je ne pensais pas qu'il fallait lier le code à l'autre feuille, mais plutôt celle où se trouvaient les graphiques. Je me méfierai à l'avenir !

Merci encore et bonne journée!

Rechercher des sujets similaires à "probleme valeur range renvoyee code vba"