Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Alimenter un ListBox avec des données sur une ligne

  • Initiateur de la discussion Initiateur de la discussion blord
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

blord

XLDnaute Impliqué
Bonjour à tous,

Est-il possible d'alimenter un listbox avec des données contenues sur une ligne au lieu d'une colonne ?

Exemple :

première donnée en C1
deuxième donnée en D1
troisième donnée en E1
etc...

Le nombre de données étant variable ?

Merci à tous !
 
Re : Alimenter un ListBox avec des données sur une ligne

Bonsoir,

C'est tout à fait réalisable : clique sur le lien en bas de ce post et lis le sujet correspondant aux chargement de lIstBox et Combobox. Il suffit de changer la sélection.

Pour un nombre de colonnes variables : utiliser Range(("IVn").end(xltoleft) au lieu de Range(("A65500").end(xlup)

Où n est la ligne où se trouvent tes données.

Cordialement
 
Re : Alimenter un ListBox avec des données sur une ligne

Re,

Une solution, si tu n'as pas trouvé 😉 et pour ceux que ça pourrait intéresser :
Code:
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim Tab1() As String

With Sheets("Feuil1")
    Set Plage = Range(.Range("A1"), .Range("IV1").End(xlToLeft))
End With

ReDim Tab1(1 To Plage.Count)
For Each Cell In Plage
    i = i + 1
    Tab1(i) = Cell
Next

ListBox1.List = Tab1
End Sub
Cordialement
 
Re : Alimenter un ListBox avec des données sur une ligne

Bonsoir le forum, Spitnolan08


En suivant ton conseil dans un de mes post 😉

Une autre solution
Code:
Private Sub UserForm_Initialize()
Dim Plage As Range
With Sheets("Feuil1")
    Set Plage = Range(.Range("A1"), .Range("IV1").End(xlToLeft))
End With
ListBox1.List = Application.Transpose(Plage.Value)
End Sub
 
Re : Alimenter un ListBox avec des données sur une ligne

Bonsoir à tous,

Merci à vous deux pour vos exemples de code, je vais tester le tout dès que possible !

Bonne fin de soirée !

Blord
 
Re : Alimenter un ListBox avec des données sur une ligne

Re,
Bonsoir Stapple,

Super, C'était ma première idée et la plus simple mais je n'ai pas réussi à faire fonctionner sur mon PC la fonction transpose😕.
Donc c'est génial, tu me confirmes que c'est bon.🙂
Et dans ce cas :
Code:
Private Sub UserForm_Initialize()
With Sheets("Feuil1")
    ListBox1.List = Application.Transpose(Range(.Range("A1"), .Range("IV1").End(xlToLeft)).Value)
End With
End Sub
est plus court...😉

Bien sûr il existe d'autres solutions...

Bonne soirée,
Cordialement
 
Dernière édition:
Re : Alimenter un ListBox avec des données sur une ligne

Re Spitnolan08


Testé sous Excel 2000

mais avec une petite plage (A1:H1) (OK No problemo)

Je m'en vais tester avec 255 cellules

Cela fonctionne pour A1:IU1

Et ca plante si toutes les cellules de ligne 1 sont remplies


Et pour faire un chouia plus court 😉
Code:
Private Sub UserForm_Initialize()
ListBox1.List = Application.Transpose(Range(Cells(1, 1), _
Cells(1, 256).End(xlToLeft)).Value)
End Sub
 
Dernière édition:
Re : Alimenter un ListBox avec des données sur une ligne

Re

Pour le fun, une variante

Code:
Private Sub UserForm_Initialize()
ListBox1.List = Application.Transpose(Rows(1).Cells.SpecialCells(7).Offset(, -1).Value)
End Sub

Et une dernière (j'ai pas pas pu faire plus court 😉 ) avec une petite rallonge (merci Spitnolan08)
Code:
Private Sub UserForm_Initialize()
Dim R as Range
Set R=Sheets("Feuil1").Range([A1], [IV1].End(1))
ListBox1.List = Application.Transpose(R)
End Sub
 
Dernière édition:
Re : Alimenter un ListBox avec des données sur une ligne

Re,

à quoi correspond ton 7 dans SpecialCells ?
(Entre nous je n'aime pas l'utilisation des range sous la dernière forme présentée : [A1]😉 mais effectivement ça va devenir dur de faire plus court😀 - Sauf que tu as oublié en route la référence à la feuille😛)

Cordialement
 
Re : Alimenter un ListBox avec des données sur une ligne

Re

Spitnolan08, l'autre jour vers la FAQ XLD tu m'as conduis

Ce soir je conduis vers l'aide VBA en ligne (lol 😉 )

Et tu y trouveras ce que le 7 représente

Un indice: de type Long

edit: tu n'as pas trouvé la réponse ?

En remerciements de l'aide que tu m'as apporté, je te donne la solution

7= xlCellTypeLastCell
 
Dernière édition:
Re : Alimenter un ListBox avec des données sur une ligne

Re MONSIEUR Stapple😉

Et bien non, mon aide en ligne ne me donne pas ce type de réponse... et j'ai essayé tous les types de constantes mais aucune ne me retournait 7...
Et je dirais même plus, chez moi, xlTypeLastCell retourne 11 😕

Merci et Bonne nuit
 
Re : Alimenter un ListBox avec des données sur une ligne

Re

A l'attention du Sieur Spitnolan08 😉

En direct de l'aide VBA (XL 2000)


J'en ai déduis qu'on pouvait remplacer xlCellTypeLastCell par 7

J'ai testé dans le code VBA et je n'ai pas eu de code d'erreur

Me-serais je trompé?
 
Dernière édition:
Re : Alimenter un ListBox avec des données sur une ligne

Re,

Je viens de taper une très longue réponse à ton dernier post mais suite à une fausse manip, tout a été effacé. Je ferais donc plus court...

Effectivement ce n'est pas si simple qu'une position dans la liste des constantes. D'ailleurs certaines de ces constantes renvoient des valeurs du style : -4175 donc bien loin de leur position dans la liste!😛

Par ailleurs, testes la valeur renvoyée par la cellule trouvée : tu verras c'est surprenant. Et il n'est pas possible d'afficher sa valeur directement dans le code VBA en pas à pas😕

Bref, je n'ai pas compris comment ta formulation fonctionne mais elle fonctionne!!!!!!!!!!!!!

Cette fois : Bonne nuit🙂
 
Re : Alimenter un ListBox avec des données sur une ligne

Re

Désolé pour ton long message

Pour info j'ai fait la même chose avec

Set R=Sheets("Feuil1").Range([A1], [IV1].End(1))

à la place de

Set R=Sheets("Feuil1").Range([A1], [IV1].End(xlToLeft))

Et ca marche aussi !!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
931
Réponses
40
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…