Listbox et tableau excel

Le
somme.si et VBa
Salut a tous,

j'ai un tableau Excel sur 20 colonnes et j aimerai faire une listbox de ce
tableau
pouvez vous me dire comment faire par code VBA, en effet je ne souhaite pas
passé par les propiétés du contrôle

le fichier s'apelle PROV et l'onglet ou figure le tableau COMPARAISON

MERCI POUR VOTRE AIDE

jm
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
AV
Le #4543541
En supposant que ton tableau se situe en A1:Txxx
La ligne 1 contient les noms de champs
Les colonnes sont renseignées inégalement
Tu pourrais alimenter ta ListBox de la façon suivante :

Sub zzz()
ActiveSheet.ListBox1.Clear
With Sheets("BD")
For i = 1 To 20
For j = 2 To .Cells(65536, i).End(3).Row
If .Cells(j, i) <> "" Then ActiveSheet.ListBox1.AddItem .Cells(j,
i).Text
Next
Next
End With
End Sub

PS : Adapte le chemin d'accès en lieu et place de Sheets("BD")

http://cjoint.com/?fCqoQocVhX

AV
LSteph
Le #4543521
Bonjour,

Peux-tu être plus précis sur ce que tu souhaites obtenir
(dans une feuille ou un userform)
sinon à partir du code ou de la fenêtre propriété, c'est libre

Hyp.1
faire du multicolonnes, avec .rowsource

Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 20
.RowSource = "COMPARAISON!$b$2:$u$46"
End With
End Sub



Hyp.2
s'il s'agit d'un tableau avec n lignes sur 20 colonnes
mais que tu veux tout sur une seule colonne
on peut boucler toutes les cellules de droite à gauche et de haut en bas
ou l'inverse exemple:

Private Sub UserForm_Initialize()
Dim c As Range

ListBox1.Clear
For Each c In Worksheets("COMPARAISON").[b2:u30].Cells
ListBox1.AddItem c
Next

End Sub

Hyp.3
(20 colonnes sur une ligne)
transpose ta ligne de 20 colonnes elle sera en une colonne de 20 lignes

Cordialement.

lSteph

Salut a tous,

j'ai un tableau Excel sur 20 colonnes et j aimerai faire une listbox de ce
tableau
pouvez vous me dire comment faire par code VBA, en effet je ne souhaite pas
passé par les propiétés du contrôle

le fichier s'apelle PROV et l'onglet ou figure le tableau COMPARAISON

MERCI POUR VOTRE AIDE

jm


MichDenis
Le #4543471
Bonjour AV,

Seulement un petit pépin qui se produit souvent ...
le listbox débute à zéro et non à 1, conséquemment
la dernière donnée de la dernière colonne ne s'affiche
pas dans la listbox même si elle y est. Pour la voir,
il faut ajouter seulement avant le End Sub la ligne suivante :

ActiveSheet.ListBox1.AddItem ""

C'est pas grave, c'est seulement l'affichage qui est manquant !

;-)


"AV" %
En supposant que ton tableau se situe en A1:Txxx
La ligne 1 contient les noms de champs
Les colonnes sont renseignées inégalement
Tu pourrais alimenter ta ListBox de la façon suivante :

Sub zzz()
ActiveSheet.ListBox1.Clear
With Sheets("BD")
For i = 1 To 20
For j = 2 To .Cells(65536, i).End(3).Row
If .Cells(j, i) <> "" Then ActiveSheet.ListBox1.AddItem .Cells(j,
i).Text
Next
Next
End With
End Sub

PS : Adapte le chemin d'accès en lieu et place de Sheets("BD")

http://cjoint.com/?fCqoQocVhX

AV
AV
Le #4543441
Cette observation est tout à fait pertinente !
Effectivement... j'avais pas vérifié car "ça aurait pas du..." !

Ces mêmes instructions (sans la dernière ligne que tu as proposée :
ActiveSheet.ListBox1.AddItem "") affichent sans problème l'intégralité des items
quand on les exécute sous XL2000 voire même sous XL97 !

Vous avez dit bizarre ?
Vous avez dit compatibilité descendante ?

AV
MichDenis
Le #4543361
| Vous avez dit bizarre ?
| Vous avez dit compatibilité descendante ?

Toute une nouveauté ! Est-ce pour ajouter un bug
ou en soustraire un des anciennes versions ?

;-))
somme.si et VBa
Le #4543271
Merci steph
j'ai retenu la premiere option que j'ai legerement modifier
j ai mis
.RowSource = "COMPARAISON!A2:U" &
sheets("Comparaison").cells(10,2).end(xldown).row

voila
mais maintenant quid de la largeur des colonnes



Bonjour,

Peux-tu être plus précis sur ce que tu souhaites obtenir
(dans une feuille ou un userform)
sinon à partir du code ou de la fenêtre propriété, c'est libre

Hyp.1
faire du multicolonnes, avec .rowsource

Private Sub UserForm_Initialize()
With ListBox1
..ColumnCount = 20
..RowSource = "COMPARAISON!$b$2:$u$46"
End With
End Sub



Hyp.2
s'il s'agit d'un tableau avec n lignes sur 20 colonnes
mais que tu veux tout sur une seule colonne
on peut boucler toutes les cellules de droite à gauche et de haut en bas
ou l'inverse exemple:

Private Sub UserForm_Initialize()
Dim c As Range

ListBox1.Clear
For Each c In Worksheets("COMPARAISON").[b2:u30].Cells
ListBox1.AddItem c
Next

End Sub

Hyp.3
(20 colonnes sur une ligne)
transpose ta ligne de 20 colonnes elle sera en une colonne de 20 lignes

Cordialement.

lSteph

Salut a tous,

j'ai un tableau Excel sur 20 colonnes et j aimerai faire une listbox de ce
tableau
pouvez vous me dire comment faire par code VBA, en effet je ne souhaite pas
passé par les propiétés du contrôle

le fichier s'apelle PROV et l'onglet ou figure le tableau COMPARAISON

MERCI POUR VOTRE AIDE

jm





AV
Le #4543201
Merci


Fallait pas....C'est trop !

AV

somme.si et VBa
Le #4543131
Merci pour ta réponse je vais l'essayer également
J ai fait un petit mixte de tout

Je ne suis pas un expert de VBA et je rame totalement, pas simple
si tu connais des petits trucs simple je suis preneur
merci par avance



Merci


Fallait pas....C'est trop !

AV






Publicité
Poster une réponse
Anonyme