Icône de la ressource

VBA - ComboBox Multi-Colonnes en UserForm - Afficher toutes les colonnes de l'item sélectionné V4

Le fichier à télécharger contient:
  1. Le Module_MultiColumnComboBox à importer dans le projet VBA.
  2. Le UserForm1 et sa ComboBox1 qui donne un exemple d'utilisation.
Les principales caractéristiques:
  • La sélection d'un item / ligne d'une ComboBox multi-colonnes est nativement amputée par Excel.
    Seule la colonne .TextColumn (ou la 1ère par défaut) est affichée.
  • Ce petit module contient 1 fonction qui permet de remédier à ce problème en:
    - Créant dynamiquement des Labels de la taille des colonnes sur la zone de la ComboBox,
    - Valorisant ces Labels lors d'un changement de sélection.
  • Les Labels n'ont aucun impact sur les valeurs de colonnes de l'item / ligne sélectionné normalement accessibles avec Me.ComboBox.Column(0 - n) dans le UserForm.
  • Évidemment la zone de la ComboBox ne peut plus faire l'objet d'une saisie puisque masquée par les Labels.
    Mais la saisie n'est pas l'objet d'une ComboBox (sauf cas très spécial d'exploitation de la saisie comme dans cette ressource) et encore moins en multi-colonnes.
Mise en œuvre très simple:
  • Placer le Module_MultiColumnComboBox dans la projet VBA.

  • Dans le code du UserForm, sur l'évènement ComboBox_Click(), appeler la fonction
    MultiColumnComboBox_Click() avec le paramètre ad hoc (voir commentaires).
Versions:
  • V1 - Initiale
  • V2 - Ajout d'attributs de texte de la ComboBox vers les Labels et préservation des bordures de la ComboBox
  • V3 - Simplification avec l'utilisation d'une seule fonction
  • V4 - Réglage affiné des positions des Labels et de la taille de police

CMB.gif