2ème colonne d'une listbox

Résolu/Fermé
Philou73.CH - Modifié par pijaku le 1/12/2014 à 08:35
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 1 déc. 2014 à 11:31
Bonjour,

Pour proposer des informations dans une listebox ce qui est mis ci-dessous me convenait jusqu'à présent.

Cependant là j'ai besoin de proposer une liste box à 2 colonnes. Et je n'arrive pas à trouver comment faire.

With Me.ListBox1
    .ColumnCount = 2
    .ColumnWidths = "120;210"
        While Sheets("FormInterne").Range("B" & X) <> ""
            ListBox1.AddItem Sheets("FormInterne").Range("B8", "C" & Y).Cells(Z, 1)
            X = X + 1
            Z = Z + 1
        Wend
End With


Merci de votre aide
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 30/11/2014 à 07:30
Bonjour

Y, ques aco ?

le principe:

For lig = 1 To nbreligne
ListBox1.AddItem "donnée " & lig
For col = 2 To columncount
ListBox1.List(ListBox1.ListCount - 1, col) = "donnée " & lig & " " & col
Next col
Next lig
--
Michel
0
Bonjour Michel_m,

Y est la dernière ligne écrite du tableau depuis lequel je prends les informations.
Cette variable est déterminée plus en avant dans la macro. Mais cette partie je n'ai pas pensé nécessaire de la mettre pour ne pas encombrer ma question.
Ai Repondu à votre interrogation ?
Merci pour votre réponse rapide.
Si g compris juste, je remplace :
Nbrligne par la différence que j'ai entre x et Y. ,première et derniere ligne de mon tableau.

Et "donnée" ??? Par Sheets("FormInterne").Range("B" &X) ???

Je n'ai pas pu tester car suis sur le chemin du retour à domicile. Et je lis votre message depuis un natel.
Merci à vous
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
1 déc. 2014 à 08:13
Bonjour,

Excuse moi, j'avais oublié cette solution sans boucle (exemple à adapter)

Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "50;50"
.Column() = Application.Transpose(Range("B2:C10"))
End With
End Sub
0
Génial !!
Merci Michel_m, celà fonctionne à merveille. J'ai enfin ce que je cherchais depuis plusieurs jours et nuits....

Par contre pouvez-vous juste me dire comment faire pour que la colonne 1 de l'userforme qui est les dates de l'événement, corresponde effectivement à une date. Là j'ai, par exemple :41802, alors que la cellule de la feuille est inscrite : 12 juin 2014.

Un grand merci en tout cas à vous et je vous suis reconnaissant de ce que vous m'avez appris.
PS : je mets ma question comme résolue, par respect au fait que vous avez répondu à ma question initiale. Mais si vous avez une suggession pour le soucis de date, c'est volontier que je lis votre solution.
Meilleures salutations
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
1 déc. 2014 à 11:31
Bonjour,
Content pour toi (et moi aussi d'avoir retrouvé cette astuce! )

le + simple derait que tu transformes en texte dans les cellules
en icorporant cette ptite boucle
For lig = 2 To 10
Cells(lig, "B") = Format(Cells(lig, "B"), "dd mmm yyyy")
Next
0