XL 2019 Worksheet_Change(ByVal Target As Range), 3 alternatives

pat66

XLDnaute Impliqué
Bonjour le forum,

auriez vous la gentillesse de me donner un coup de main svp

Conditions souhaitées dans workbook change de la Feuille 1 :

Code:
[CODE=vb]If Worksheets("Feuil1").Range("AM106").Value = 2 and Worksheets("Feuil2").Shapes("Rectangle : coins arrondis 51").Visible = True Then
Worksheets("Feuil2").Shapes("Rectangle : coins arrondis 6").Visible = False
Worksheets("Feuil2").Shapes("Rectangle : coins arrondis 36").Visible = true
else
Worksheets("Feuil2").Shapes("Rectangle : coins arrondis 6").Visible = true
Worksheets("Feuil2").Shapes("Rectangle : coins arrondis 36").Visible = false
end if
[/CODE]

mais je souhaite en plus que que si une des deux conditions n'est pas remplie, alors :
Code:
Worksheets("Feuil2").Shapes("Rectangle : coins arrondis 6").Visible = false
Worksheets("Feuil2").Shapes("Rectangle : coins arrondis 36").Visible = false

un grand merci

Pat66
 
Solution
re
bonjour
la chose est tres simple
je te cite
'en d 'autres termes
'Si AM6 = 1 et la forme 51 est visible, on affiche la forme 6 et on masque la forme 36
'Si AM6 = 2 et la forme 51 est visible, on affiche la forme 36 et on masque la forme 6
'mais si la forme 51 est masquée, on masque les formes 6 et 36 quelque soit le contenu de AM6
dans le module de la Feuil1
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
onCacheOnMontre
End Sub



Dans un module standard
change les nomsdes shapes pour les tiens
dans cet exemple avec ces dux lignes tu gère les 3 conditions
Code:
Sub onCacheOnMontre()
dim cel as range
Set cel = sheets("Feuil1").[AM106]
With sheets("Feuil2")
.Shapes("forme6").Visible = cel = 1 And...

pat66

XLDnaute Impliqué
oui je me suis certainement trompé sur la formulation et cela vous a induit en erreur dès le départ, c'est bien pour cela que j'ai besoin d'aide, veuillez me pardonner j'aurais du rectifier mon post 1

Oui j'ai dis : "mais je souhaite en plus que que si une des deux conditions n'est pas remplie"

pour moi cela sous entendait notamment que si la forme 51 était masquée les formes 6 et 36 seraient masquées automatiquement, c'est pour cela que la macro de mon post 3 semble correspondre à la solution

en ce qui concerne ta macro, si je mets 1 dans AM106 et que la forme 51 est visible, les formes 6 et 36 sont masquées, hors la forme 6 devrait s'afficher et la forme 36 être masquée, cette condition n'est pas non plus respectée, mais j'assume complètement vous avoir induit en erreur
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
bonjour
la chose est tres simple
je te cite
'en d 'autres termes
'Si AM6 = 1 et la forme 51 est visible, on affiche la forme 6 et on masque la forme 36
'Si AM6 = 2 et la forme 51 est visible, on affiche la forme 36 et on masque la forme 6
'mais si la forme 51 est masquée, on masque les formes 6 et 36 quelque soit le contenu de AM6
dans le module de la Feuil1
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
onCacheOnMontre
End Sub



Dans un module standard
change les nomsdes shapes pour les tiens
dans cet exemple avec ces dux lignes tu gère les 3 conditions
Code:
Sub onCacheOnMontre()
dim cel as range
Set cel = sheets("Feuil1").[AM106]
With sheets("Feuil2")
.Shapes("forme6").Visible = cel = 1 And .Shapes("forme51").Visible
.Shapes("forme36").Visible = cel = 2 And .Shapes("forme51").Visible
End With
End Sub


bien que je ne vois pas l'intérêt de tout mettre dans l'event (une seule macro puisque ce serait dans l'event change de la feuil1 donc aucun visu sur les shapes de feuil2)
mais si tu y tiens tu peux tout mettre dans l'event change de la feuil1

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Set cel = [AM106]
With sheets("Feuil2")
.Shapes("forme6").Visible = cel = 1 And .Shapes("forme51").Visible
.Shapes("forme36").Visible = cel = 2 And .Shapes("forme51").Visible
End With
End Sub

j'ai testé ça match
 
Dernière édition:

pat66

XLDnaute Impliqué
re,

merci patricktoulon, c'est exactement ce qu'il me fallait, mon problème est résolu et en plus j'ai bien compris " je ne vois pas l'intérêt de tout mettre dans l'event "

merci à tous pour votre aide et encore désolé pour m'être mal exprimé, je ferais plus attention à l'avenir

cdt
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 267
Membres
103 168
dernier inscrit
isidore33