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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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")
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
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
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
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
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" a écrit dans le message de news: % 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
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" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de news:
%23SX3YLToHHA.716@TK2MSFTNGP05.phx.gbl...
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")
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" a écrit dans le message de news: % 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
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
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 ?
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
| 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 ?
;-))
| 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 ?
| 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
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
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 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