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

modifier une propriété d'une listebox sans passer par une sélection

cabsen

XLDnaute Junior
Bonjour à tous,

Je coince sur un détail. Je modifie la propriété "ListFillRange" d'une listebox sans difficulté à partir d'un bout de macro enregistrée :
Code:
ActiveSheet.Shapes.Range(Array("List Box 3")).Select
    With Selection
        .ListFillRange = "eExercices"
        .LinkedCell = "$B$10"
        .MultiSelect = xlNone
        .Display3DShading = True
    End With
C'est efficace mais je souhaiterais amélioré un détail esthétique : éviter le select disgracieux à l'affichage. J'ai alors tenté de nombreuses formes d'écriture comme celle-ci :
Code:
ActiveSheet.Shapes.Range(Array("List Box 3")).ListFillRange = "eExercices"
…mais rien y fait et je récupère une erreur d'exécution "438" : Propriété ou méthode non gérée par cet objet ?

Il n'y a rien d'urgent et je m’accommoderai par défaut de la première solution qui est fonctionnelle, mais si quelqu'un sait comment faire, je suis preneur.

Merci d'avance
 

Victor21

XLDnaute Barbatruc
Re : modifier une propriété d'une listebox sans passer par une sélection

Bonsoir, cabsen.

Avez-cous essayé :
VB:
With ActiveSheet.Shapes.Range(Array("List Box 3"))
         .ListFillRange = "eExercices"
         .LinkedCell = "$B$10"
         .MultiSelect = xlNone
         .Display3DShading = True
     End With
Moi, non, faute de fichier joint...
 

cabsen

XLDnaute Junior
Re : modifier une propriété d'une listebox sans passer par une sélection

Merci pour votre réponse mais malheureusement j'obtiens la même erreur (438).
 

Pièces jointes

  • essai.xls
    39.5 KB · Affichages: 35
  • essai.xls
    39.5 KB · Affichages: 34
  • essai.xls
    39.5 KB · Affichages: 41

Victor21

XLDnaute Barbatruc
Re : modifier une propriété d'une listebox sans passer par une sélection

Re,

Je ne parviens pas non plus à m'exonérer de la sélection préalable :
VB:
Sub Macro2()
ActiveSheet.Shapes("List Box 1").Select
With Selection
        .ListFillRange = "eExercices"
        .LinkedCell = ""
        .MultiSelect = xlNone
        .Display3DShading = True
    End With
End Sub
 

cabsen

XLDnaute Junior
Re : modifier une propriété d'une listebox sans passer par une sélection

Bonsoir,

Et merci pour l'inspiration née des échanges…
Code:
Sheets("Feuil1").Shapes("List Box 1").ControlFormat.ListFillRange = "eExercices"
A priori cela fonctionne sans passer par une sélection
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…