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

  • Initiateur de la discussion Initiateur de la discussion Willy
  • 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 !

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
 
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
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
282
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
652
Réponses
3
Affichages
584
Retour