3 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
17 mars 2008 à 10:52
17 mars 2008 à 10:52
bonjour,
Une listbox n'est pas faite pour accueillir des tableaux ... il préférable d'utiliser un DataGrid que l'on peut lier à une BDD.
Pour ajouter le DataGrid aux contrôles de la boîte à outils, faire : Outils -> contrôles supplémentaires et cocher dans la liste Microsoft DataGrid Control, version 6.0 (OLEDB) ...
;o)
Polux
Une listbox n'est pas faite pour accueillir des tableaux ... il préférable d'utiliser un DataGrid que l'on peut lier à une BDD.
Pour ajouter le DataGrid aux contrôles de la boîte à outils, faire : Outils -> contrôles supplémentaires et cocher dans la liste Microsoft DataGrid Control, version 6.0 (OLEDB) ...
;o)
Polux
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
17 mars 2008 à 12:04
17 mars 2008 à 12:04
re,
Il faut définir dans les propriétés de la listbox le nombre de colonnes (columnCount) et mettre true dans ColumnHeads pour avoir la première ligne comme titre des colonnes. Tu peux aussi définir la largeur des colonnes (ColumnWidths).
Je te donne là l'exemple donné dans l'aide VBA d'Excel pour placer les données dans les colonnes et le lignes:
;o)
Polux
Il faut définir dans les propriétés de la listbox le nombre de colonnes (columnCount) et mettre true dans ColumnHeads pour avoir la première ligne comme titre des colonnes. Tu peux aussi définir la largeur des colonnes (ColumnWidths).
Je te donne là l'exemple donné dans l'aide VBA d'Excel pour placer les données dans les colonnes et le lignes:
Private Sub UserForm_Initialize() ListBox1.ColumnCount = 3 ListBox1.AddItem "Row 1, Col 1" ListBox1.List(0, 1) = "Row 1, Col 2" ListBox1.List(0, 2) = "Row 1, Col 3" ListBox1.AddItem "Row 2, Col 1" ListBox1.List(1, 1) = "Row 2, Col 2" ListBox1.List(1, 2) = "Row 2, Col 3" ListBox1.AddItem "Row 3, Col 1" ListBox1.List(2, 1) = "Row 3, Col 2" ListBox1.List(2, 2) = "Row 3, Col 3" ListBox1.TextColumn = 3 End Sub Private Sub ListBox1_Change() TextBox1.Text = ListBox1.Text End Sub
;o)
Polux
oui j'avais vu en fait voila mon code, dans lequel je récupére les données de Ma BDD mais au niveau du chargement ca bug. la ligne "info_liste_choix_install.ListBox1.AddItem RSCONSO4![appareil] & ", " & RSCONSO4![Install] & ", Cal " & RSCONSO4![Cal]" fonctionne mais me met toutes les données à la suite des autres lignes par lignes. les colonnes sont créées mais les tirtres j'arrive pas à les mettre. est ce que pour récupérer mes données add items suffira ? j'ai un peu de mal excuse moi mais je débute en VBA et je comprends pas grand chose ! dsl et merci de ta patience !! ;-b
Function listbox_chargement()
Dim RSCONSO4 As Recordset
Dim Requete As String
Set BDDCONSO = OpenDatabase(Workbooks("AutoBEv2.xls").Path & "/BDD Access/BDD CONSO.mdb")
'Requete = "SELECT * FROM CONSO WHERE ID=" & AutoBe.champ_caché.Caption & " "
Requete = "SELECT * FROM CONSO"
Set RSCONSO4 = BDDCONSO.OpenRecordset(Requete)
'dans le cas ou plusieurs résultats sont attendus
While Not RSCONSO4.EOF
'récupération des valeurs
'******************charger listbox avec données en colonne*****************************************
'With info_liste_choix_install.ListBox1
' .ColumnCount = 4
'.ColumnWidths = "40,40,40"
' .List = RSCONSO4![appareil] & ", " & RSCONSO4![Install] & ", Cal " & RSCONSO4![Cal]
' End With
'***********************************************************
info_liste_choix_install.ListBox1.AddItem RSCONSO4![appareil] & ", " & RSCONSO4![Install] & ", Cal " & RSCONSO4![Cal]
RSCONSO4.MoveNext
Wend
BDDCONSO.Close
End Function
Function listbox_chargement()
Dim RSCONSO4 As Recordset
Dim Requete As String
Set BDDCONSO = OpenDatabase(Workbooks("AutoBEv2.xls").Path & "/BDD Access/BDD CONSO.mdb")
'Requete = "SELECT * FROM CONSO WHERE ID=" & AutoBe.champ_caché.Caption & " "
Requete = "SELECT * FROM CONSO"
Set RSCONSO4 = BDDCONSO.OpenRecordset(Requete)
'dans le cas ou plusieurs résultats sont attendus
While Not RSCONSO4.EOF
'récupération des valeurs
'******************charger listbox avec données en colonne*****************************************
'With info_liste_choix_install.ListBox1
' .ColumnCount = 4
'.ColumnWidths = "40,40,40"
' .List = RSCONSO4![appareil] & ", " & RSCONSO4![Install] & ", Cal " & RSCONSO4![Cal]
' End With
'***********************************************************
info_liste_choix_install.ListBox1.AddItem RSCONSO4![appareil] & ", " & RSCONSO4![Install] & ", Cal " & RSCONSO4![Cal]
RSCONSO4.MoveNext
Wend
BDDCONSO.Close
End Function
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
17 mars 2008 à 13:58
17 mars 2008 à 13:58
re,
Je n'ai pas trop le temps de chercher la solution (j'ai aussi mon boulot :-s) mais essaies de regarder du coté de la propriété ControlSource ou RowSource en y mettant ton recordset ... je n'ai pas vérifié mais je pense que ça doit éviter l'utilisation de AddItem ...
Fais également un tour sur https://www.developpez.com/ et de https://codes-sources.commentcamarche.net/ ... on peut y trouver des exemples ...
;o)
Polux
Je n'ai pas trop le temps de chercher la solution (j'ai aussi mon boulot :-s) mais essaies de regarder du coté de la propriété ControlSource ou RowSource en y mettant ton recordset ... je n'ai pas vérifié mais je pense que ça doit éviter l'utilisation de AddItem ...
Fais également un tour sur https://www.developpez.com/ et de https://codes-sources.commentcamarche.net/ ... on peut y trouver des exemples ...
;o)
Polux
17 mars 2008 à 11:20
j'ai essayé de créer un datagrid mais dans le liste microsoft je n'ai pas celle souhaitée, je l'ai pourtant faite plusisuer fois.
disons que ma listbox n'accueil pas un tableau mais doit etre mulicolonnes. apparemment c'est possible car il m'a semblé voir des doc la dessus à moins que j'ai mal compris. lol ca se peut !
le data grid ressemble à quoi en principe ?