Question

Comment puis-je ajouter un bouton de combinaison / déroulant dans le bureau (voir ci-dessous). De préférence avec le code.

text alt

Mise à jour:. Si elle aide tout, le code n'est pas nécessaire

Était-ce utile?

La solution

vous pouvez le faire, sur la base des contrôles ActiveX suivants:

  • Microsoft ImageList Control, version 6
  • Microsoft ImageComboBox Control, version 6

manuellement, vous sélectionnez « Plus de contrôles ... » dans la barre de menu [Boîte à outils de configuration] et double cliquez sur les contrôles mentionnés pour les obtenir sur votre feuille. Placez la zone de liste déroulante où vous voulez qu'il soit, et ne pas tenir compte de la position du ImageList, il est visible uniquement en mode de conception. Maintenant, vous avez deux CONTROS embarqués nommé

  • ImageList1
  • ImageCombo1

L'insertion des deux composants crée également une référence à ... \ system32 \ MSCOMCTL32.OCX.

Ensuite, vous

  1. ajouter manuellement des icônes (GIF, BMP, etc.) à la liste des images
  2. définir manuellement la propriété ImageList du Combo "ImageList1"
  3. définir manuellement la propriété AutoLoad du Combo True

Maintenant que vous avez une combinaison avec l'erreur, mais pas d'icônes.

Ensuite, vous exécutez ce code

Sub FillCombo()
Dim SH As Worksheet, OO As OLEObjects, Idx As Integer

    Set SH = ActiveSheet
    Set OO = SH.OLEObjects


    With OO("ImageCombo1").Object
        .ComboItems.Clear
        For Idx = 1 To OO("ImageList1").Object.ListImages.Count
            .ComboItems.Add , , , Idx
        Next Idx
    End With

End Sub

J'ai essayé dur pour créer les objets de VBA, mais le ImageCombo semble se comporter différent lors de sa création en tant que

Set SH = ActiveSheet
Set OO = SH.OLEObjects
OO.Add "MSComctlLib.ImageComboCtl.2"
' .... etc ....

Le combo est créé, mais la flèche du menu déroulant n'apparaît pas, peu importe ce que je fais, allthough débogueur montre que tous les éléments de ListView sont soigneusement attachés. Beaucoup de collègues semblent avoir des problèmes avec cette ActiveX, il y a des charges de l'affichage sur le net.

Pour en savoir plus

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top