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

Créer en VBA une ListBox MultiSelect sur feuille

eriiic

XLDnaute Barbatruc
Bonjour à tous,

Si je crée manuellement une ListBox ActiveX sur une feuille dans ses propriétés je peux changer MultiSelect.

Si je la crée en VBA cette propriété est inaccessible par le code.
Et si sur la feuille, en mode création, je clique-droit sur l'objet je n'ai même pas 'Propriétés' dans le menu contextuel ce qui confirme le problème.
Comment bien la déclarer ?
Code:
Sub test()
' créer ListBox LbxSelMultiple
    On Error Resume Next
    ActiveSheet.Shapes("LbxSelMultiple").Delete
    On Error GoTo 0
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", _
                      DisplayAsIcon:=False, Left:=180, Top:=12.75, Width:=87, Height:=102).Select
    With Selection
        .Name = "LbxSelMultiple"
        .MultiSelect = 1
    End With
    [A1].Select
    'ActiveSheet.Shapes("LbxSelMultiple").MultiSelect = 1 'fmMultiSelectMulti
End Sub
 

Pièces jointes

  • Classeur3.xls
    26 KB · Affichages: 105
  • Classeur3.xls
    26 KB · Affichages: 115
  • Classeur3.xls
    26 KB · Affichages: 136

Pierrot93

XLDnaute Barbatruc
Re : Créer en VBA une ListBox MultiSelect sur feuille

Bonjour,

ceci semble fonctionner ous 2003...
Code:
Option Explicit
Sub test()
Dim s As OLEObject
Set s = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", _
     DisplayAsIcon:=False, Left:=180, Top:=12.75, Width:=87, Height:=102)
With s
    .ListFillRange = Range("A1:A20").Address
    .Object.MultiSelect = fmMultiSelectMulti
End With
End Sub

bon après midi
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Créer en VBA une ListBox MultiSelect sur feuille

Re,

rajouter peut être un "activate" à l'objet :
Code:
Option Explicit
Sub test()
Dim s As OLEObject
Set s = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", _
     DisplayAsIcon:=False, Left:=180, Top:=12.75, Width:=87, Height:=102)
With s
    .ListFillRange = Range("A1:A20").Address
    .Object.MultiSelect = fmMultiSelectMulti
    .Activate
End With
End Sub
 

eriiic

XLDnaute Barbatruc
Re : Créer en VBA une ListBox MultiSelect sur feuille [Résolu]

Bonjour Pierrot,

impeccable, j'en ai tenté des trucs, mais jamais je n'aurais pensé à ça...
Merci
eric
 
Dernière édition:

Discussions similaires

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