Afficher toute une base de données dans une ListBox

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 !

Papynou

XLDnaute Occasionnel
Bonjour,

Aujourd'hui j'ai eu beaucoup de chance, le forum m'a aidé à régler plusieurs points sur lesquels je butais. Y'en a un nouveau !!!

Je voudrais afficher le contenu complet d'une base dans une seul ListBox puis par un double click sélectionner une ligne de la ListBox pour récupérer les données et les transmettre dans un Usf.

Pour afficher la base :

A part la piste ListBox_Encours.Additem, je suis sec !

Pour le double clik j'ai :

Private Sub ListBox_Encours_DblClic(ByVal Cancel As MSForms.ReturnBoolean)
If ListBox_Encours.List Index <> -1 Then MsgBox ListBox_Encours.Text

Pour le transfert aussi je suis sec...

Toujours aussi avide de conseils, je reste en éveil 😀
@+
 
Re : Afficher toute une base de données dans une ListBox

Bonsoir Papynou, le forum,

Un exemple de liste :
Tu crées un formulaire (Userform)
Tu y insère une combobox que tu appelle cbxdate (par exemple)
Tu copies dans UserForm_initialize le code suivant et tu obtiens une liste déroulante avec les 31 derniers jours du mois


'---- code à tester
Sub UserForm_Initialize()
Dim T(30) As Date
Dim i As Byte

For i = 0 To 30
T(i) = Date - i
Next i

cbxdate.List = T

End Sub
'---- Fn de code


Explications :
ligne 1 : je déclare un tableau de type "Date" capable de recevoir 31 données (ça démarre à 0)
Ligne 2 : je déclare une variable "compteur" pour tourner dans une boucle
Ligne 3 : je commence la boucle : à chaque incrémentation de i
ligne 4: une case du tableau T reçoit la valeur de la date du jour moins i
(donc T(0) = date du jour - 0 ; T(1) = date du jour moins 1 (soit hier) ...)
Ligne 5 : continues pour chaque i jusqu'à 30

Ligne 6, vient le moment attendu : ton tableau T a recu toutes les valeurs et tu les transfère à la combobox par : cbxdate.List
Ta liste de valeur est dorénavant ajoutée à la combobox

Ce n'est qu'un exemple avec des dates, on peut faire pareil avec des nombres, des chaînes de caractères, il suffit de déclarer le tableau avec le type de variable adéquat.

On peut bien entendu faire des listes avec des colonnes avec des tableaux multidimentionnels
Certains fils sur ce forum l'expliquent parfaitement.

Bonne soirée
Kotov
 
Re : Afficher toute une base de données dans une ListBox

Bonjour le Forum,

J'ai trouvé ça ce matin :

Private Sub UserForm_Initialize()
Dim Ligne&
Ligne = Sheets(1).Range("A65536").End(xlUp)
Me.ComboBox_Encours.List() = Sheets(1).Range(Cells(2, 1), Cells(Ligne, 2)).Value
Me.ComboBox_Encours.ListIndex = 0
End Sub

Impeccable, la ComboBox s'initialise parfaitement.

J'ai besoin d'un coup de pouce pour transformer ce code car je voudrait voir toutes les colonnes remplies dans la feuille (A:R)
Merci
@+
 
Re : Afficher toute une base de données dans une ListBox

re (peut-être re à moi tout seul ?)

J'ai changé mon fusil d'épaule et j'alimente une ListBox, qui me permet d'afficher tout ce que comporte la feuille où sont saisies les données. Je trouve que ça me donne un visuel plus "parlant".

J'utilise le code suivant :

Private Sub Cmd_Encours_Click()
Me.ListBox1.ColumnCount = 18
Me.ListBox1.ColumnWidths = "40,70"
Me.ListBox1.RowSource = "A2:R" & [R65536].End(xlUp).Row
End Sub

Je cherche à mettre des intitulés en haut de chacune des colonnes de la ListBox, pour le moment je ne sait comment faire. Si quelqu'un a une idée, je suis preneur.

Mais, j'ai surtout une question fondamentale qui concerne le choix de l'outil le plus adapté : ListBox, ComboBox ou ListView ?

Et puis, je demande si je continue sur ce chemin "ListBox", est-ce que je vais pouvoir fomater les colonnes pour qu'elles s'adaptent en largeur de façon systématique à la longueur de l'info qu'elles recoivent de la feuille ?
 
Re : Afficher toute une base de données dans une ListBox

Re

Avec l'aide du fichier transmis par bebere (merci encore 🙂 )

J'en suis arrivé à afficher une partie de ce que je voulais voir avec ce code :

With Me.ListBox1
.ColumnCount = 4
.ColumnWidths = "100;100;100"
.ColumnHeads = True
.RowSource = ActiveSheet.Range("A2😀65536").Address
End With

Maintenant je voudrais :

1 - remplacer "ActiveSheet" par la feuille de mon choix.
2 - rajouter une autre plage "I:K65536" à "A2😀65536".

J'ai essayé plusieurs formulations mais ça 😡
@+
 
Re : Afficher toute une base de données dans une ListBox

Papynou
tu remplaces base par le nom de la feuille

Dim Plg As String

With Sheets("Base")
Plg = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Address
End With
ListBox1.RowSource = "Base!" & Plg

With Sheets("Base")
Plg = .Range("A2:I" & .Range("A65536").End(xlUp).Row).Address
End With
ListBox1.RowSource = "Base!" & Plg

à bientôt
 
Re : Afficher toute une base de données dans une ListBox

Bebere à dit:
Papynou
tu remplaces base par le nom de la feuille

Dim Plg As String

With Sheets("Base")
Plg = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Address
End With
ListBox1.RowSource = "Base!" & Plg

With Sheets("Base")
Plg = .Range("A2:I" & .Range("A65536").End(xlUp).Row).Address
End With
ListBox1.RowSource = "Base!" & Plg

à bientôt
bebere,

Merci du code, pour le choix de la feuille c'est OK mais pour le choix de la plage ne s'affiche que la deuxième ?
 
Re : Afficher toute une base de données dans une ListBox

re,

Je viens de passer une heure à rechercher la solution dans le forum mais je formule surement mal ma question car après avoir lu une multitude de posts je suis toujours sans solution à mon problème de plages multiples à afficher dans la listbox.
 
Re : Afficher toute une base de données dans une ListBox

Bonjour Papynou, Bebere

Je sais pas si j'ai tout compris de ton problème, mais essaye peut être le code ci dessous :

Code:
Dim Plg as Range
With Sheets("Base")
Set Plg = .Range("A2:I" & .Range("A65536").End(xlUp).Row)
End With
ListBox1.RowSource = "Base!" & Plg.Address

Bonne soirée
@+
 
Re : Afficher toute une base de données dans une ListBox

bonsoir le fil
Papynou,mets un fichier -de50k avec ce que tu veux obtenir
on tourne en rond,"Merci du code, pour le choix de la feuille c'est OK mais pour le choix de la plage ne s'affiche que la deuxième ?"je comprends pas
chez moi c'est bon
à bientôt
 
- 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

Retour