Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Afficher & Masquer Connecteur

achraf26

XLDnaute Occasionnel
Bonjour tout le monde,
je ne sais comment masquer un connecteur quand la valeur n'est pas correcte, j'ai mis en code vba pour afficher mais pour masquer je ne sais pas le faire, si quelqu'un peut m'aider.
Shapes("Connecteur droit 2").Visible = [B5] = "F"

Bien à vous
 
Solution
Bonjour Achrat, Dranreb,
Rssayez avec :
VB:
ActiveSheet.Shapes("Essai").Visible = [B5] = "F"
par ex avec ceci en feuil1 :
Code:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [B5]) Is Nothing Then
        ActiveSheet.Shapes("Essai").Visible = [B5] = "F"
    End If
Fin:
Application.ScreenUpdating = True
End Sub
on obtient cela :

E

crocrocro

XLDnaute Occasionnel
bonjour le fil
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MaShape As Shape
    Set MaShape = ActiveSheet.Shapes("Connecteur droit 2")
    If [B5] = "F" Then
        MaShape.Fill.Visible = True
        MaShape.Line.Visible = True
    Else
        MaShape.Fill.Visible = False
        MaShape.Line.Visible = False
    End If
    Set MaShape = Nothing
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Achrat, Dranreb,
Rssayez avec :
VB:
ActiveSheet.Shapes("Essai").Visible = [B5] = "F"
par ex avec ceci en feuil1 :
Code:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [B5]) Is Nothing Then
        ActiveSheet.Shapes("Essai").Visible = [B5] = "F"
    End If
Fin:
Application.ScreenUpdating = True
End Sub
on obtient cela :

E
 

Pièces jointes

  • Classeur1.xlsm
    14.6 KB · Affichages: 1

achraf26

XLDnaute Occasionnel
j'avais trouvé cette solution, mais je ois repeter à chaque fois pour chaque connecteur.
VB:
Shapes("Connecteur droit 2").Visible = [B5] = "F"
   Shapes("Connecteur droit 3").Visible = [B5] <> "F"
   Shapes("Connecteur droit 4").Visible = [B5] <> "F"
   Shapes("Connecteur droit 5").Visible = [B5] <> "F"
   Shapes("Connecteur droit 6").Visible = [B5] <> "F"
   Shapes("Connecteur droit 7").Visible = [B5] <> "F"
   Shapes("Connecteur droit 8").Visible = [B5] <> "F"
   Shapes("Connecteur droit 9").Visible = [B5] <> "F"
   Shapes("Connecteur droit 10").Visible = [B5] <> "F"
 

crocrocro

XLDnaute Occasionnel
Si, comme le demande @jurassic pork , toutes les shapes sont concernées :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MaShape As Shape
    For Each MaShape In ActiveSheet.Shapes
        If [B5] = "F" Then
            MaShape.Visible = True
        Else
            MaShape.Visible = False
        End If
    Next MaShape
    Set MaShape = Nothing
End Sub
 
Dernière édition:

achraf26

XLDnaute Occasionnel
la solution est parfaite, avec ce code je peux rajouter des shapes en fonction de la valeur de la cellule.
Merci à toi
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…