VBA faire disparaître les commandes macro sous condition
Résolu
Gilles.DR315
Messages postés
28
Statut
Membre
-
Gilles.DR315 Messages postés 28 Statut Membre -
Gilles.DR315 Messages postés 28 Statut Membre -
Bonjour,
Je vous explique mon problème.
En feuil1 à la cellule D20 j'ai le choix via liste déroulante : OUI / NON / ""
J'ai deux commandes macro qui renvoi chacune vers deux autres feuilles du classeur.
J'arrive à les faire permuter en affichage OUI / NON
Par :
Mais ce que je cherche c'est à les faire disparaître tout les deux quand la cellule D20 est vide. Range("D20") = ""
Ceci afin de forcer l'utilisateur à choisir. avant de continuer.
Si c'est pas possible techniquement à cause d'une cellule avec Liste
Alors faire disparaître les deux si Range("D15") = "" (D15 est en format monétaire)
Merci d'avance de votre aide.
Cdt
Je vous explique mon problème.
En feuil1 à la cellule D20 j'ai le choix via liste déroulante : OUI / NON / ""
J'ai deux commandes macro qui renvoi chacune vers deux autres feuilles du classeur.
J'arrive à les faire permuter en affichage OUI / NON
Par :
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D20") = "NON" Then
ActiveSheet.Shapes("Pentagone 22").Visible = True
ActiveSheet.Shapes("Pentagone 20").Visible = False
Else
ActiveSheet.Shapes("Pentagone 22").Visible = False
ActiveSheet.Shapes("Pentagone 20").Visible = True
End If
If Range("D20") <> "NON" Then
ActiveSheet.Shapes("Pentagone 22").Visible = False
ActiveSheet.Shapes("Pentagone 20").Visible = True
Else
ActiveSheet.Shapes("Pentagone 22").Visible = True
ActiveSheet.Shapes("Pentagone 20").Visible = False
End If
End Sub
Mais ce que je cherche c'est à les faire disparaître tout les deux quand la cellule D20 est vide. Range("D20") = ""
Ceci afin de forcer l'utilisateur à choisir. avant de continuer.
Si c'est pas possible techniquement à cause d'une cellule avec Liste
Alors faire disparaître les deux si Range("D15") = "" (D15 est en format monétaire)
Merci d'avance de votre aide.
Cdt
2 réponses
-
Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D20") = "NON" Then
ActiveSheet.Shapes("Pentagone 22").Visible = True
ActiveSheet.Shapes("Pentagone 20").Visible = False
ElseIf Range("D20") = "OUI" Then
ActiveSheet.Shapes("Pentagone 22").Visible = False
ActiveSheet.Shapes("Pentagone 20").Visible = True
ElseIf Range("D20") = "" Then 'Autre
ActiveSheet.Shapes("Pentagone 22").Visible = False
ActiveSheet.Shapes("Pentagone 20").Visible = False
End If
End Sub -
Bonjour,
Merci pour le ElseIf
Maintenant çà marche. Il fallait quelques parenthèses.
et le tour est joué
Cdt
If Range("D20") = "" Then
ActiveSheet.Shapes("Pentagone 22").Visible = False
ActiveSheet.Shapes("Pentagone 20").Visible = False
ElseIf (Range("D20") <> "NON" And Range("D15") <> "") Then
ActiveSheet.Shapes("Pentagone 22").Visible = False
ActiveSheet.Shapes("Pentagone 20").Visible = True
ElseIf (Range("D20") = "NON" And Range("D15") <> "") Then
ActiveSheet.Shapes("Pentagone 22").Visible = True
ActiveSheet.Shapes("Pentagone 20").Visible = False
End If
End Sub