IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Nommer des colonnes dans une ListBox [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2023
    Messages : 2
    Par défaut Nommer des colonnes dans une ListBox
    Bonjour à tous!

    Des petites explications s'imposent.

    je vous mets le contexte: j'ai dans un tableau en 10x4 différents fruits avec différentes variétés et d'autres données comme la quantité de la variété en stock ou son numéro de référence. En appuyant sur le bouton à coté du tableau, le fichier ouvre un formulaire. Je voulais que dans ce formulaire on puisse sélectionner le type de fruit avec une ComboBox et récupérer les données de chaque variété de ce fruit dans une ListBox adjacente. Après quelques galères j'ai réussi à faire marcher le code de cette façon.

    Il reste un dernier petit problème que je n'arrive pas à résoudre. Dans ma ListBox j'aimerais pouvoir nommer mes Headers dans les 4 colonnes pour plus d'ésthétisme et de facilité de lecture. Mais j'ai pas trouvé la solution. De ce que j'ai compris on ne peut le faire qu'avec la propriété RowSource mais en l'essayant le logiciel me renvoie le message "Propriété ou méthode non gérée par cet objet".
    J'utilise pourtant la partie Initialiser du UserForm.

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Private Sub ComboBox1_Change()
     
    Dim k As Integer
     
    ListBox1.Clear
     
    For k = 2 To Sheets("Feuil1").Range("A65536").End(xlUp).Row
    If ComboBox1.Value = Sheets("Feuil1").Range("A" & k).Value Then
    ListBox1.AddItem Sheets("Feuil1").Range("A" & k).Value
     ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Sheets("Feuil1").Range("B" & k).Value
     ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Sheets("Feuil1").Range("C" & k).Value
     ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Sheets("Feuil1").Range("D" & k).Value
     End If
    Next k
     
    End Sub
     
    Private Sub UserForm_Initialize()
     
    Dim i As Integer, TV As Variant
     
    'Initialisation de la ComboBox
    For i = 2 To Sheets("Feuil1").Range("A65536").End(xlUp).Row
      ComboBox1 = Sheets("Feuil1").Range("A" & i)
      'Supprimer les doublons
      If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem (Sheets("Feuil1").Range("A" & i))
      Next i
    ComboBox1.Value = ""
     
    TV = Sheets("Feuil1").Range("A1").CurrentRegion
    Me.ListBox1.ColumnCount = 5
    Me.ListBox1.ColumnHeads = True
    Me.ListBox1.List = TV
     
    End Sub
    Des idées? C'est peut-être simple mais je suis débutant.

    Pardon d'avance pour le dérangement et merci ^^
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, une idée toute simple serait de positionner des labels au-dessus de ta listbox pour simuler les entêtes.

  3. #3
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Salut à vous...
    Pour utiliser les entêtes dans la listbox, il faut passer par la rowsource effectivement. Or cette propriété demande à ce que lors de l'initialisation de l'userform, celui soit ouvert sur la feuille active qui comporte les données chargées sinon une erreur sera répertoriée comme tu l'as mentionné dans ton poste. Une deuxième astuce que j'utilise le plus souvent, c'est d'activer la feuille qui contient les données, ensuite chargée la listbox et redonner la main à une autre feuille si on ne veut pas rester sur la feuille source.
    Worksheets ("Feuil1").Activate
    ...
    Instructions pour charger la listbox
    ...
    Worksheets ("Feuil2").Activate

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2023
    Messages : 2
    Par défaut
    Bonjour à tous!

    Merci Franc et Mr l'Ashanti pour vos idées; elles m'ont permis de résoudre mon problème

    Bonne journée à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Ajout des colonnes dans une LISTBOX
    Par LANGAZOU dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/05/2017, 15h26
  2. Récupérer le nom des colonnes dans une Listbox Multicolonnes
    Par rampage92 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/04/2017, 18h48
  3. [XL-2013] Largeur des colonnes dans une ListBox
    Par RastaBomboclat dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/08/2016, 15h19
  4. [XL-2003] Problème de décalage des colonnes dans une listbox
    Par -Naek- dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/05/2009, 20h06
  5. Afficher deux colonnes dans une ListBox
    Par deubal dans le forum Composants VCL
    Réponses: 4
    Dernier message: 25/10/2005, 19h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo