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 :

Alimenter une listbox avec un tableau


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Points : 71
    Points
    71
    Par défaut Alimenter une listbox avec un tableau
    Bonjour
    je planche sur le sujet depuis quelques temps et je ne comprends pas ce qui ne fonctionne pas.
    Je souhaite à partir d'un tableau excel autofiltré, d'alimenter une listbox en passant par un tableau multi dimension (choix que je peux remettre en cause, n'ayant pas essayer d'autres solutions, qui pour moi, me semble plus compliquées)
    le tableau se remplit correctement.
    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       Me.ListBox.List = Tableau(J, 5) ' J étant la taille du tableau
    J'obtient une liste vide

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        For i = 0 To J
           Me.ListBox.AddItem
           Me.ListBox.List(i, 0) = (Tableau(i + 1, 1))
           Me.ListBox.List(i, 1) = (Tableau(i + 1, 2))
           Me.ListBox.List(i, 2) = (Tableau(i + 1, 3))
           Me.ListBox.List(i, 3) = (Tableau(i + 1, 4))
           Me.ListBox.List(i, 4) = (Tableau(i + 1, 5))
        Next
    J'obtiens les deux premières colonnes remplies et les autres vides
    Merci de vos idées

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Com-ace, bonjour le forum,

    Dans l'onglet Feuil1, j'ai rempli des données au hasard (22 lignes, 9 colonnes)
    Le code ci-dessous me permet d'afficher ces données dans la ListBox1 d'une UserForm1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Initialize()
    Dim TV As Variant
     
    TV = Sheets("Feuil1").Range("A1").CurrentRegion
    Me.ListBox1.ColumnCount = UBound(TV, 2)
    Me.ListBox1.List = TV
    End Sub
    J'espère que ça pourra t'aider...
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Points : 71
    Points
    71
    Par défaut
    Merci Thautheme
    Le résultat est meilleur.
    J'ai quand même 2 soucis :
    1 - Les deux premières lignes de la listbox sont les deux lignes qui précédent la ligne de sélection CurrentRegion
    2 - Je ne comprend pas comment il fait une sélection sur les colonnes à afficher (il n'affiche que certaines colonnes qui sont justement les colonnes que j'ai choisi - celles qui sont sélectionnées dans le tableau que je n'utilsie pas)

    Si tu as la réponse, je suis preneur

  4. #4
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Re,

    CurrentRegion n'est pas toujours le plus approprié car il faut qu'il y ait une ligne d'étiquettes de données ou d'en-têtes sans colonne vide au milieu. Cependant, cela reste le plus simple dans bien des cas...
    Sans voir la disposition des données dans ton fichier difficile de te donner la bonne réponse...
    pour ton premier problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub UserForm_Initialize()
    Dim PL As Range
    Dim TV As Variant
    Dim NL As Integer
    Dim NC As Integer
     
    Set PL = Sheets("Feuil1").Range("A1").CurrentRegion
    NL = PL.Rows.Count
    NC = PL.Columns.Count
    Set PL = PL.Offset(2, 0).Resize(NL - 2, NC)
    TV = PL
    Me.ListBox1.ColumnCount = NC
    Me.ListBox1.List = TV
    End Sub
    Pour le second j'avoue que j'ai pas bien compris...
    À plus,

    Thauthème

    Je suis Charlie

  5. #5
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,

    En utilisant un tableau structuré, il n'y plus de pb de CurrentRegion
    Les BD peuvent être déplacées

    Pour alimenter la ListBox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Me.ListBox1.ColumnCount = [client].Columns.Count + 1
      Me.ListBox1.ColumnWidths = "20;50;80;50;30;70;70;50;50"
      Me.ListBox1.List = [client].value

    Boisgontier

  6. #6
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour le fil, bonjour le forum,

    Tu va réussir à me faire aimé les tableaux structuré (ListObjects)... Merci Môssieur Jacques BOISGONTIER ! Une source cet homme ! À ne pas confondre avec une femme fontaine hein...
    À plus,

    Thauthème

    Je suis Charlie

Discussions similaires

  1. [XL-2007] Alimenter une ComboBox avec un tableau trié
    Par c.piette dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2015, 08h56
  2. [XL-2010] Alimenter une listbox avec les données d'une feuille par ordre décroissant
    Par lavineur dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/03/2015, 13h56
  3. Alimenter une listbox avec une list d'objet
    Par offspring dans le forum Silverlight
    Réponses: 5
    Dernier message: 08/12/2009, 18h04
  4. alimenter une listbox avec données filtrées
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/12/2007, 23h42
  5. Réponses: 12
    Dernier message: 22/06/2006, 12h09

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