J'ai placé plusieurs listes déroulantes dans une feuille.
Lorsque je clique droit dessus, et que je choisis affecter une
macro/nouvelle, une fenêtre s'ouvre dans l'éditeur VBA, où je peux saisir du
code.
Par exemple, celui-ci, qui affiche ou masque un objet en fonction du choix
fait dans une liste déroulante :
Sub Zonedeliste4_QuandChangement()
If Range("B32").Value = 2 Then
Feuil1.Shapes(2).Visible = False
Else: Feuil1.Shapes(2).Visible = True
End If
End Sub
Comment savoir à quel numéro d'objet shape correpondent les différents
contrôles présents dans la feuille ?
J'espère être clair...
Merci
André
Apparemment il s'agit de ListBoxes issues de la barre doutils Formulaire :
For Each X In ActiveSheet.ListBoxes MsgBox X.Name MsgBox X.Index Next
PS : tu peux remplacer "ListBoxes" par "Shapes" ou par "DrawingObjects" AV
michdenis
Bonjour AB,
Si tu affecte cette macro à chacun des contrôles issus de ta barre d'outils "formulaire", tu devrais obtenir ce que tu désires.
P.S. Le seul hic, comment feras-tu pour cliquer à nouveau sur des boutons invisibles ?
'------------------------- Sub Zonedeliste4_QuandChangement()
With Feuil1 If .Range("B32").Value = 2 Then .Shapes(.Shapes(Application.Caller).Name).Visible = False Else .Shapes(.Shapes(Application.Caller).Name).Visible = True End If End With
End Sub '-------------------------
Salutations!
"AB" a écrit dans le message de news:O%23rxry$ Bonjour à tous,
J'ai placé plusieurs listes déroulantes dans une feuille. Lorsque je clique droit dessus, et que je choisis affecter une macro/nouvelle, une fenêtre s'ouvre dans l'éditeur VBA, où je peux saisir du code. Par exemple, celui-ci, qui affiche ou masque un objet en fonction du choix fait dans une liste déroulante : Sub Zonedeliste4_QuandChangement() If Range("B32").Value = 2 Then Feuil1.Shapes(2).Visible = False Else: Feuil1.Shapes(2).Visible = True End If End Sub
Comment savoir à quel numéro d'objet shape correpondent les différents contrôles présents dans la feuille ? J'espère être clair... Merci André
Bonjour AB,
Si tu affecte cette macro à chacun des contrôles issus de ta barre d'outils "formulaire", tu devrais obtenir ce que tu
désires.
P.S. Le seul hic, comment feras-tu pour cliquer à nouveau sur des boutons invisibles ?
'-------------------------
Sub Zonedeliste4_QuandChangement()
With Feuil1
If .Range("B32").Value = 2 Then
.Shapes(.Shapes(Application.Caller).Name).Visible = False
Else
.Shapes(.Shapes(Application.Caller).Name).Visible = True
End If
End With
End Sub
'-------------------------
Salutations!
"AB" <ABspamophobe1@marseille.com> a écrit dans le message de news:O%23rxry$tEHA.1472@TK2MSFTNGP10.phx.gbl...
Bonjour à tous,
J'ai placé plusieurs listes déroulantes dans une feuille.
Lorsque je clique droit dessus, et que je choisis affecter une
macro/nouvelle, une fenêtre s'ouvre dans l'éditeur VBA, où je peux saisir du
code.
Par exemple, celui-ci, qui affiche ou masque un objet en fonction du choix
fait dans une liste déroulante :
Sub Zonedeliste4_QuandChangement()
If Range("B32").Value = 2 Then
Feuil1.Shapes(2).Visible = False
Else: Feuil1.Shapes(2).Visible = True
End If
End Sub
Comment savoir à quel numéro d'objet shape correpondent les différents
contrôles présents dans la feuille ?
J'espère être clair...
Merci
André
Si tu affecte cette macro à chacun des contrôles issus de ta barre d'outils "formulaire", tu devrais obtenir ce que tu désires.
P.S. Le seul hic, comment feras-tu pour cliquer à nouveau sur des boutons invisibles ?
'------------------------- Sub Zonedeliste4_QuandChangement()
With Feuil1 If .Range("B32").Value = 2 Then .Shapes(.Shapes(Application.Caller).Name).Visible = False Else .Shapes(.Shapes(Application.Caller).Name).Visible = True End If End With
End Sub '-------------------------
Salutations!
"AB" a écrit dans le message de news:O%23rxry$ Bonjour à tous,
J'ai placé plusieurs listes déroulantes dans une feuille. Lorsque je clique droit dessus, et que je choisis affecter une macro/nouvelle, une fenêtre s'ouvre dans l'éditeur VBA, où je peux saisir du code. Par exemple, celui-ci, qui affiche ou masque un objet en fonction du choix fait dans une liste déroulante : Sub Zonedeliste4_QuandChangement() If Range("B32").Value = 2 Then Feuil1.Shapes(2).Visible = False Else: Feuil1.Shapes(2).Visible = True End If End Sub
Comment savoir à quel numéro d'objet shape correpondent les différents contrôles présents dans la feuille ? J'espère être clair... Merci André