Masquer une forme en fonction du contenu d'une cellule

Bonsoir, j'ai trouvé un bout de code sur le site que j'essaye d'adapter mais je n'arrive pas.

En F3 lorsque la cellule est vide les formes sont à True

Si F3 possède un chiffre > 1 cela passe à False.

Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets(2)
If [F3] = "" Then
Shapes("Rectangle : coins arrondis 13").Visible = True
Shapes("Rectangle : coins arrondis 18").Visible = True
ElseIf [F3] <> 1 Then
Shapes("Rectangle : coins arrondis 13").Visible = False
Shapes("Rectangle : coins arrondis 18").Visible = False
End If
End With
End Sub

D'avance merci.

Bonsoir le forum

Bonsoir Pigneau

A mon avis, cela ne fonctionne pas car le nom de tes shapes est mal reproduit (Respect de l'orthographe et de la casse).

12pigneau.xlsm (16.51 Ko)

Bonne nuit

Bonjour Ericool02, bonjour à tous...

Là, je comprends plus rien, j'ai un portable avec Excel 2021 et WIN 10, un PC avec Excel 365 et WIN 11. Je suis parti d'un fichier vierge sur chaque PC, je respecte la casse comme évoqué en prenant soin d'ouvrir le volet de sélection pour faire une copie du libellé de chaque rectangle dans mon code. Mon code est dans l'onglet ThisWookbook du classeur.

Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets(1)
If [A1] = "" Then
Shapes("Rectangle 1").Visible = True
Shapes("Rectangle 2").Visible = True
ElseIf [A1] <> 0 Then
Shapes("Rectangle 1").Visible = False
Shapes("Rectangle 2").Visible = False
End If
End With
End Sub

Je modifie la valeur en A1 comme prévu et rien ne se passe. J'en perds mon latin, c'est absolument incompréhensible et le pire dans l'histoire c'est que lorsque je lance votre fichier, celui-ci fonctionne parfaitement bien. RARRRRRRRRRRR

Bonjour le forum

Bonjour Pigneau

Ton code, de visu, fonctionne parfaitement. Pour que la valeur dans A1 soit égale à rien ([A1]=""), il faut sélectionner la cellule et te servir de la touche "Supp" pour avoir l'effet escompté (apparition des rectangles).

Bonne journée

c´est ce que je fais mais il n'y a rien à faire

Re le fil

Si A1 = 1 ==> Rectangles 1 et 2 - Si A1 = 2 ==> Aucun rectangle

Bonne journée

16pigneau.xlsm (16.65 Ko)

merci j'ai bien compris la logique, mais j´ai également d´autres soucis avec excel, j'ai fait un post sur le site également que j'ai également soumis à la communauté Microsoft où j'attends également de l´aide. Je crois que je vais formater mes ordi si cela continue.

Re le fil,

Désolé d'avoir insisté !!!!

Non, non pas de soucis, bien au contraire, j'apprécie ton intervention. Là je viens de mettre un Emoji, hé bien lors de l'affichage de tous les Emoji tous ne s'affiche pas à l'écran.

Ce qui me fait rager ou enrager, c'est que ta feuille, ton code fonctionne sur mes ordinateur et que mon fichier, mon code et bien RIEN.

Là, je vais chez un ami qui a Excel 2019 et je vais faire quelques tests. Je veux en avoir le cœur net. Je me pose même la question si Excel 365 ne rentrerait pas en conflit avec Excel 2021 vu que j'ai qu'un compte mais 2 ordinateurs ayant chacun sa version. Voili voilà...

Bonjour,

Mon code est dans l'onglet ThisWookbook du classeur.

Sans doute pas dans le ThisWookbook

Ceci dit, normal que rien ne se passe : tu écris une procédure événementielle Private Sub Worksheet_Change(ByVal Target As Range) le code doit donc être écrit dans le module de la feuille concernée, en aucun cas dans ThisWorkbook, ni dans un module standard !

Salut,

Merci pour ton intervention, j'ai placé le code dans la feuille comme tu me l'as indiqué et cela fonctionne. Est-ce que ces procédures doivent se trouver également dans le ThisWookbook :

--------------------------------------------------------------------------------------------------------------------------

Private Sub Workbook_Open()

With Sheets(2)
If .Range("G4") = "" Then
Sheets(4).Visible = True
Sheets(5).Visible = False
Else
Sheets(4).Visible = True 'Feuille CLIENT
Sheets(5).Visible = True 'Feuille TARIF

End If
End With

Sheets("PARTICULIER").Select

End Sub
-----------------------------------------------------------------------------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=False
Ferme_Donnees
End Sub

-------------------------------------------------------------------------------------------------------------------------------

Je crois que je viens de perdre l'un de mes neurones.

U. Milité - Je n'avais pas pris la peine de lire correctement le post donc pas vu.....

@ Pigneau - La procédure décrite ci-dessus se déclenche à l'ouverture et avant la fermeture de TON CLASSEUR (ThisWorkBook et non ThisWookBook)

donc oui le code est à placer à cet endroit.

C'est encore moi U.Milité,

Aurais tu la possibilité de regarder le classeur que j'ai mis en partage dans le sujet que j'ai créé il y a quelques jours "Comportement bizarre de ma feuille en mode protégée", il a été vu 36 fois mais pas une réponse. J'en demande peut-être trop mais qui ne demande rien n'a rien. Je ne me vexerais si tu ne peux rien pour moi.

D'avance merci

Rechercher des sujets similaires à "masquer forme fonction contenu"