Forme visible ou invisible selon valeur de cellule autre feuille VBA

Bonjour,

Je souhaite rendre visible ou pas une forme (rond2 (par exemple)) selon une valeur contenue dans une cellule (A1 (par exemple)) d'une autre feuille (Feuil4 (par exemple))

Après recherche sur différents posts je suis arriver a adapter un code pour une forme qui dépend de la valeur d'une cellule:

Private Sub Worksheet_Change(ByVal Answer_1 As Range)
If [A1] = 1 Then
Shapes("rond2").Visible = True
ElseIf [A1] <> 1 Then
Shapes("rond2").Visible = False
End If
End Sub

Mon problème comme vous pouvez le constater, est que j'arrive pas à vérifier ma valeur sur une autre feuille. (Par exemple si A1 était sur une autre page)

Auriez vous quelques indices a me donner?
Merci par avance.
Cordialement

Bonjour Yannhudson et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum
- Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.

Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)

Concernant votre demande, le développement VBA est un développement orienté objet, il faut donc les utiliser
Si certains pratiquent l'appel d'une cellule avec les crochets, les "vrais" développeurs ne le font pas
Voici comment on appelle les objets conteneurs

If Thisworkbook.Sheets("NomDeLaFeuille").Range("A1") = 1 Then

Merci pour votre participation

A+

Merci, merci d'avoir répondu ;)

Du coups en remodifiant mon code comme ceci, j'arrive toujours pas à faire disparaitre ma forme "roro" selon la valeur de ma cellule A1 en "Feuil2

If ThisWorkbook.Sheets("Feuil2").Range("A1") = 1 Then
Shapes("roro").Visible = True
ElseIf [A1] <> 1 Then
Shapes("roro").Visible = False
End If
End Sub

Bonjour à tous,

Concernant votre demande, le développement VBA est un développement orienté objet, il faut donc les utiliser

Si certains pratiquent l'appel d'une cellule avec les crochets, les "vrais" développeurs ne le font pas

Un indice:

ElseIf [A1] <> 1 Then

Cordialement,

Re,

Merci xorsankukai,
C'est bien la peine d'expliquer les choses ceci dit le test peut être plus simple

Si ce n'est pas 1 dans la cellule, c'est forcément autre chose

If ThisWorkbook.Sheets("Feuil2").Range("A1") = 1 Then
  Shapes("roro").Visible = True
Else
  Shapes("roro").Visible = False
End If

Merci pour vos nombreuses réps, mais toujours rien je vous joints des images d'un fichier test pour illustrer mon code

If ThisWorkbook.Sheets("Feuil4").Range("A1") = 1 Then
  Shapes("roro").Visible = True
Else
  Shapes("roro").Visible = False
End If

Ici ma forme "roro" en Feuil3, ne disparaissant pas après avoir inséré la valeur 1 en "A1" en Feuil4

capture1

Re,

La modification de la cellule doit être apporté dans la feuil3 qui contient également le code donné

Si vous voulez changer la valeur de la cellule dans une autre feuille que votre Shape, ça change tout...

Dans "Feuil4", il faut mettre ce code

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("A1"), Target) Is Nothing Then
    If Target = 1 Then
      Sheets("Feuil3").Shapes("Roro").Visible = False
    Else
      Sheets("Feuil3").Shapes("Roro").Visible = True
    End If
  End If
End Sub

Et la modification se fait bien dans la cellule A1 de cette feuille

A+

Merci ! Problème résolu !

Je prenais le problème par le mauvais bout, effectivement en partant de la page de ma valeur (Feuil4) je pouvais supprimer ma forme (Feuil3)

Rechercher des sujets similaires à "forme visible invisible valeur feuille vba"