Afficher les données de 1 ligne dans plusieurs lignes de ListBox

W

Willy

Guest
Bonjour le forum,

J'ai un tableau de A2 jusqu'à CJ.
chaque ligne du tableau contient le nom, prénom et l'historique des stages de chaque personne.

Je souhaiterai dans une ListBox, afficher les données d'une personne mais avec l'historique de chaque stage sur chaque ligne de la ListBox, exemple :

TOTO Alfred stage 1 NuméroStage1 DateStage1
TOTO Alfred stage 2 NuméroStage2 DateStage2
TOTO Alfred stage 3 NuméroStage3 DateStage3
TOTO Alfred stage 4 NuméroStage4 DateStage4


Avec la procédure suivante, j'arrive à afficher la première ligne mais pas les suivantes :

' AFFICHAGE RESULTAT DANS LISTBOX
Sub AfficheHisto()
Dim tableau() As String
Dim i As Integer
Dim r As Range
Dim Cell As Range

Set r = ActiveSheet.Range("A:CJ").End(xlToRight).Columns

' AFFICHAGE DES 7 COLONNES DANS LE LISTBOX
ReDim tableau(0 To r.Count - 1, 1 To 7)

For Each Cell In r
' Affichage sur la première ligne du listbox
tableau(i, 1) = ActiveCell.Value ' NOM
tableau(i, 2) = ActiveCell.Offset(0, 1).Value ' PRENOM
tableau(i, 3) = ActiveCell.Offset(0, 3).Value ' GRADE
tableau(i, 4) = Format(ActiveCell.Offset(0, 4).Value, "dd mmmm yyyy") ' NOMINATION
tableau(i, 5) = ActiveCell.Offset(0, 5).Value ' NUM ARRETE
tableau(i, 6) = ActiveCell.Offset(0, 6).Value ' CORPS SP
tableau(i, 7) = ActiveCell.Offset(0, 7).Value ' DUREE
'i = i + 1
Next

' CREATION DES COLONNES DU LISTING
ListBox1.ColumnCount = 7
ListBox1.List = tableau
ListBox1.ColumnWidths = "80;65;110;90;100;90;55"

Me.ListBox1.List = tableau
End Sub


J'ai essayé ceci, mais par contre j'affiche bien les données du second stage mais pas le premier stage et toujours sur 1 ligne dans la ListBox :

' AFFICHAGE RESULTAT DANS LISTBOX
Sub AfficheHisto()
Dim tableau() As String
Dim i As Integer
Dim r As Range
Dim Cell As Range

Set r = ActiveSheet.Range("A:CJ").End(xlToRight).Columns

' AFFICHAGE DES 7 COLONNES DANS LE LISTBOX
ReDim tableau(0 To r.Count - 1, 1 To 7)

For Each Cell In r
' Affichage sur la première ligne du listbox
tableau(i, 1) = ActiveCell.Value ' NOM
tableau(i, 2) = ActiveCell.Offset(0, 1).Value ' PRENOM
tableau(i, 3) = ActiveCell.Offset(0, 3).Value ' GRADE
tableau(i, 4) = Format(ActiveCell.Offset(0, 4).Value, "dd mmmm yyyy") ' NOMINATION
tableau(i, 5) = ActiveCell.Offset(0, 5).Value ' NUM ARRETE
tableau(i, 6) = ActiveCell.Offset(0, 6).Value ' CORPS SP
tableau(i, 7) = ActiveCell.Offset(0, 7).Value ' DUREE
'i = i + 1
' Affichage sur la seconde ligne du listbox
tableau(i, 1) = ActiveCell.Value ' NOM
tableau(i, 2) = ActiveCell.Offset(0, 1).Value ' PRENOM
tableau(i, 3) = ActiveCell.Offset(0, 8).Value ' GRADE
tableau(i, 4) = Format(ActiveCell.Offset(0, 9).Value, "dd mmmm yyyy") ' NOMINATION
tableau(i, 5) = ActiveCell.Offset(0, 10).Value ' NUM ARRETE
tableau(i, 6) = ActiveCell.Offset(0, 11).Value ' CORPS SP
tableau(i, 7) = ActiveCell.Offset(0, 12).Value ' DUREE
i = i + 1
Next

' CREATION DES COLONNES DU LISTING
ListBox1.ColumnCount = 7
ListBox1.List = tableau
ListBox1.ColumnWidths = "80;65;110;90;100;90;55"

Me.ListBox1.List = tableau
End Sub


Merci de votre aide

Willy
 
W

Willy

Guest
Re,

J'ai trouvé !
Pour ceus que cela interresse :

Il s'agissait d'indiquer le nombre de ligne dans :
' AFFICHAGE DES 7 COLONNES DANS LE LISTBOX
ReDim tableau(0 To r.Count 3 , 1 To 7)

Au lieu de :
ReDim tableau(0 To r.Count - 1 , 1 To 7) !!!!!!
En fait je pensais cacher la première ligne d'intitulé !

Par contre, j'ai 17 ligne à afficher, j'ai tout modifié et bien que cela fonctionne à présent, je suis preneur si il y a une meilleure méthode

Bonne journée
Willy
 

Discussions similaires

Statistiques des forums

Discussions
312 191
Messages
2 086 051
Membres
103 108
dernier inscrit
Captain NRJ