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
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