XL 2016 Affiche/masque Combobox

jeromeN95

XLDnaute Impliqué
Hello en ce beau jour j'aimerai un piti coup de cellule svp.

Affiche / Masque Zone de liste déroulante (formulaire) si cellule vide :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
With ActiveSheet.OLEObjects("Combobox1")
.Visible = Me.Range("C25").Value <> ""
End With
End Sub
 
Solution
Bonjour jeromeN95, sylvanu,

Si je comprends bien c'est très simple :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Shapes("Image 3").Visible = [C24] <> ""
Shapes("Zone combinée 1").Visible = [C24] <> ""
End Sub
A+

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jérome,
Pas tout bien compris. Essayez pour voir :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub                           ' Si plusieurs cellules sélectionnées, on sort
    If Not Intersect(Target, Range("A1:Z1000")) Is Nothing Then ' Adapter plage où l'action doit s'effectuer
        If Target = "" Then                                     ' Si la cellule cliquée est vide
            ActiveSheet.OLEObjects("Combobox1").Visible         ' Afficher Combobox
        End If
    End If
End Sub
 

jeromeN95

XLDnaute Impliqué
Merci sylvanu,
mais ca ne fonctionne pas

Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub ' Si plusieurs cellules sélectionnées, on sort
If Not Intersect(Target, Range("C15:C15")) Is Nothing Then ' Adapter plage où l'action doit s'effectuer
If Target = "" Then ' Si la cellule cliquée est vide
ActiveSheet.OLEObjects("CentraleP1").Visible ' Afficher Combobox
End If
End If
End Sub

Je précise que ce n'ai pas une combobox mais une liste déroulante pris le formulaire
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je n'ai pas tout compris. Pourquoi Range("C15:C15") dans votre code alors que la liste est en C24 ?
En PJ un essai, si la liste est vide on masque l'image en B24, sinon elle est visible.
Je ne comprends pas ce qu'est CentraleP1 dans (ActiveSheet.OLEObjects("CentraleP1"))
VB:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub ' Si plusieurs cellules sélectionnées, on sort
If Not Intersect(Target, Range("C24")) Is Nothing Then ' Adapter plage où l'action doit s'effectuer
    If Target = "" Then ' Si la cellule cliquée est vide
        Shapes("Image 3").Visible = False
    Else
        Shapes("Image 3").Visible = True
    End If
End If
End Sub
expliquez moi ce que vous voudriez faire, je suis un peu paumé.:)
 

Pièces jointes

  • Liste deroulante avec pourcentage a maquer.xlsm
    44.9 KB · Affichages: 5

job75

XLDnaute Barbatruc
Bonjour jeromeN95, sylvanu,

Si je comprends bien c'est très simple :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Shapes("Image 3").Visible = [C24] <> ""
Shapes("Zone combinée 1").Visible = [C24] <> ""
End Sub
A+
 

Pièces jointes

  • Liste deroulante avec pourcentage a maquer(1).xlsm
    46.4 KB · Affichages: 9

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 609
dernier inscrit
AmineAB33