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 :)
 

Statistiques des forums

Discussions
311 720
Messages
2 081 897
Membres
101 833
dernier inscrit
sandra25