Créer en VBA une ListBox MultiSelect sur feuille

  • Initiateur de la discussion Initiateur de la discussion eriiic
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
@+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
9
Affichages
2 K
Retour