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 :

Comment afficher une colonne simple sous forme de tableau dans une LISTBOX?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut Comment afficher une colonne simple sous forme de tableau dans une LISTBOX?
    Bonjour à tous,

    Désolé de vous solliciter pour un souci qui ne doit pas être compliqué mais
    je ne trouve pas de solution satisfaisante...

    J'ai une liste de données dans la plage H35:H54 soit 20 valeurs, et je souhaiterai qu'elles s'affichent sous la forme d'un tableau de 4lignes er 5 colonnes dans une Listbox.

    J'ai beau manipuler les differentes propriétés de la Listbox je n'arrive pas à obtenir ce fichu tableau...

    Si vous avez une solution je suis preneur

    Cordialement

    Tham

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Essai ceci :
    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 UserForm_Initialize()
     
        Dim Plage As Range
        Dim I As Integer
     
        With Worksheets("Feuil1")
     
            Set Plage = .Range(.Cells(35, 8), .Cells(54, 8))
     
        End With
     
        With ListBox1
     
            .ColumnCount = 5
     
            'modifier ici les différentes largeurs
            .ColumnWidths = "50;50;50;50;50"
     
            For I = 1 To 4
     
            'rempli la 1ere colonne
                .AddItem Plage(I)
     
            'rempli les autres colonnes
                .Column(1, I - 1) = Plage(I + 4)
                .Column(2, I - 1) = Plage(I + 8)
                .Column(3, I - 1) = Plage(I + 12)
                .Column(4, I - 1) = Plage(I + 16)
     
            Next I
     
        End With
     
    End Sub
    Hervé.

  3. #3
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    bonjour,
    _ passe par un tableau en mémoire dim temp(1 to 4, 1 to 5).
    _ une petite boucle for pour parcourir dans un sens, une deuxième boucle imbriquée pour parcourir l'autre sens.
    _ une variable compteur incrémentée à l'intérieur des deux boucles pour désigne les ligne de ta colonne de cellule.
    _ les indices de tableau te sont fournis par les compteurs de boucles.
    _ affecter ensuite la propriété List de ton objet par le tableau.

    Assez simple à réaliser non?

    Edit
    Herve a déjà fourni le code pendant que je rédigeais.
    Salut!

  4. #4
    Membre extrêmement actif
    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
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub UserForm_Initialize()
      Dim a(1 To 4, 1 To 5)
      Set champ = Range("H35:H54")
      For i = 1 To 4
        For j = 1 To 5
          a(i, j) = champ.Cells(((i - 1) * 5 + j), 1)
        Next j
      Next i
      Me.ListBox1.List = a
    End Sub
    JB
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut
    Merci de vos réponses
    Pas si simple finalement on dirait (enfin pour moi)

    Hervé,
    Ca marche très bien, la Listbox s'affiche avec les données sous forme de
    tableau 4 x 5, mais...
    Lorsque je sélectionne une valeur c'est toute la ligne qui est sélectionnée
    soit 5 valeurs aie!

    Un paramètre à régler pour sélectionner qu'une valeur ou ce n'est tout simplement pas possible?

    J'ai voulu voir ce que cela donnai en récupérant la valeur sur l'événement click

    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ListBox1_Click()
    Range("h33").Value = ListBox1.Value
    End Sub
    Il ne se passe rien... là je ne comprend pas trop pourquoi...

    JB,
    Ca marche beaucoup moins bien je n'ai que la premiere colonne de rempli...

  6. #6
    Membre extrêmement actif
    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
    Par défaut
    En ouvrant la PJ, on peut constater que les 5 colonnes sont visibles.

    jacques boisgontier

  7. #7
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 18
    Par défaut
    C'est vrai!
    C'est moi qui ai du modifier quelque chose en manipulant les propriétés de ma Listbox mea culpa

    Par contre même souci qu'avec la méthode de Hervé, je ne peux pas sélectionner une valeur, uniquement une ligne...

    Sur l'évenement click je récupère bien la valeur de la listBox qui est celle de la première colonne.

  8. #8
    Membre extrêmement actif
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim Btn(1 To 20) As New ClasseBoutons
    Private Sub UserForm_Initialize()
      For i = 1 To 20
       Set Btn(i).GrBoutons = Me("commandbutton" & i)
       Me("CommandButton" & i).Caption = Cells(34 + i, "h")
      Next i
    End Sub
     
    Module de classe
    Public WithEvents GrBoutons As Msforms.CommandButton
    Private Sub GrBoutons_click()
      [H33] = GrBoutons.Caption
    End Sub
    jacques boisgontier
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 8
    Dernier message: 01/03/2014, 14h55
  2. Réponses: 3
    Dernier message: 18/06/2010, 10h56
  3. recuperer une requete SQL sous forme de tableau EXCEL
    Par skillipo dans le forum VBA Access
    Réponses: 0
    Dernier message: 06/12/2007, 17h45
  4. Réponses: 5
    Dernier message: 27/04/2007, 15h06
  5. Réponses: 7
    Dernier message: 11/03/2007, 22h49

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