Afficher/Masquer une forme en fonction de cellules

Bonjour à tous,

Je cherche a faire afficher/masquer une forme en fonction de la valeur affichée dans certaines cellules.

Voici mon code :

Private Sub Worksheet_Change (ByVal Target as Range)

Sheets("feuil2").Activate
If Range("F6") = 1 Or Range("G6") <>1 Or Range("H6") = 3 Then
Sheets("feuil1").Activate
Shapes("maforme").visible = true
Else
Shapes("maforme").visible = false
End if
End sub

merci pour votre aide.

Bonjour, est-ce utile de passer d'une feuille à l'autre pour l'activer ?

Private Sub Worksheet_Change(ByVal Target As Range)

If Worksheets("Feuil2").Range("F6").Value = 1 Or Worksheets("Feuil2").Range("G6").Value <> 1 Or Worksheets("Feuil2").Range("H6").Value = 3 Then
Worksheets("Feuil1").Shapes("Rectangle 1").Visible = True
Else
Worksheets("Feuil1").Shapes("Rectangle 1").Visible = False
End If

End Sub

Bonjour Lamouche31, le forum,

Essaies:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("F6") = 1 Or Range("G6") <> 1 Or Range("H6") = 3 Then
       Sheets("feuil1").Shapes("maforme").Visible = True
    Else
       Sheets("feuil1").Shapes("maforme").Visible = False
    End If
End Sub

J'ai supposé que les valeurs de F6,G6 et H6 sont sur la feuille2.


[EDIT] Salut Xmenpl,


Cordialement,

Merci à vous pour vos réponses.

Malheureusement, cela ne fonctionne pas. Je vous joins le fichier ici dans la soirée.

Je vous remercie encore.

Voici le fichier et je vous donne plus de précisions.

Dans la première feuille, nous avons des contrôles de formulaire ainsi que des listes déroulantes.

J'ai lié les résultats de ces contrôles dans la feuille 2 "Paramètres" sur la ligne 6.

Je voudrais qu'en fonction des résultats affichés sur cette ligne, la forme que j'ai nommé "NO GO" s'affiche ou se masque.

J'espère avoir été clair. N'hésitez pas si vous désirez plus d'informations.

Merci encore.

8classforum.xlsm (42.40 Ko)

Re bonjour,

- Le premier problème et que votre code se trouve dans ThisWorkbook. et non dans l'événement d'une feuille.

-Le deuxième est que vous utiliser des contrôles pour changer les données qui seront modifiées en Paramètres.

Le changement dans les contrôles n'est pas détecté dans un évènement de type :

Private Sub Worksheet_SelectionChange(ByVal Target As Range) la macro ne se lancera donc pas.

Solutions :

1) Ajoutez un bouton qui lancera cette macro.

ou

2) remplacer vos contrôles par des controles actives X dans lesquels vous pourrez ajouter la macro à l'évenement

change du contrôle.

Exemple avec le bouton :

21classforum.xlsm (46.41 Ko)

Merci Xmen.

Effectivement, j'ai bien pensé au bouton mais je n'en voulais pas. J'espérais que ma forme pouvait apparaitre/disparaitre en temps réel.

Déjà que le VBA est compliqué pour moi (autodidacte complet) alors les ActiveX...

Pourrais tu me donner un exemple?

Je te remercie du temps que tu me consacres.

Rechercher des sujets similaires à "afficher masquer forme fonction"