Remplir une ListView en transposant un tableau

apt

XLDnaute Impliqué
Bonjour à tous,

J'aimerais remplir une ListView en transposant les données d'un tableau.

Mais il reste quand même quelques reglages ...

Voila le code :

Code:
Private Sub UserForm_Initialize()
    Dim tablo(1, 3)
    Dim i As Integer, tCol As Integer, R As Integer
    Titre = Array("Code Articles", "PrixU")
    tablo(0, 1) = "Beurre": tablo(1, 1) = Format("300", "# ##0.00")
    tablo(0, 2) = "Bare": tablo(1, 2) = Format("1500", "# ##0.00")
    tablo(0, 3) = "Bureau": tablo(1, 3) = Format("7543300", "# ##0.00")
    '----- Remplissage ListView------------------------
    With ListView1
    'Définit le nombre de colonnes et Entêtes
        With .ColumnHeaders
    'Supprime les anciens entêtes
            .Clear
    'Ajoute 2 colonnes en spécifiant le nom de l'entête
    'et la largeur des colonnes
    '            MsgBox "Ubound(tablo) = " & UBound(tablo)
            For tCol = 0 To UBound(tablo)       '-- 02 colonnes
                MsgBox "Titre(" & tCol & ") = " & Titre(tCol)
                .Add , , Titre(tCol), 40    'ListView1.ColumnHeaders.
            Next tCol
        End With
    '-- Quadrillage à vrai
        .Gridlines = True
    '-- Remplissage de la ListView
        R = 1
    '        MsgBox "Ubound(tablo) = " & UBound(tablo)
        Do Until R > UBound(tablo, 2)
    '-- Données
            .ListItems.Add , , tablo(0, R)
            For iCnt = 1 To UBound(tablo)          '2 colonnes
                .ListItems(R).ListSubItems.Add , , tablo(iCnt, 1)
                .ListItems(R).ListSubItems.Add , , tablo(iCnt, 2)
            Next iCnt
            R = R + 1
        Loop
        .View = lvwReport     'affichage en mode "Détails"
        .Gridlines = True     'affichage d'un quadrillage
        .FullRowSelect = True    'Sélection des lignes complètes
    End With
End Sub

Merci :)
 

bqtr

XLDnaute Accro
Re : Remplir une ListView en transposant un tableau

Bonsoir apt,

Si je comprends bien test ceci:

Code:
Private Sub UserForm_Initialize()

    Dim tablo(1, 3), i As Integer
    
    tablo(0, 1) = "Beurre": tablo(1, 1) = Format("300", "# ##0.00")
    tablo(0, 2) = "Bare": tablo(1, 2) = Format("1500", "# ##0.00")
    tablo(0, 3) = "Bureau": tablo(1, 3) = Format("7543300", "# ##0.00")

    '----- Remplissage ListView------------------------
    With ListView1
    'Définit le nombre de colonnes et Entêtes
        With .ColumnHeaders
    'Supprime les anciens entêtes
            .Clear
    'Ajoute 2 colonnes en spécifiant le nom de l'entête et la largeur des colonnes
            .Add , , "Code Articles", 60    'ListView1.ColumnHeaders.
            .Add , , "Prix U", 60, lvwColumnRight
        End With   
       
        .View = lvwReport     'affichage en mode "Détails"
        .Gridlines = True     'affichage d'un quadrillage
        .FullRowSelect = True    'Sélection des lignes complètes
        
    '-- Remplissage de la ListView
        For i = 1 To UBound(tablo, 2)
          .ListItems.Add , , tablo(0, i)
          .ListItems(.ListItems.Count).ListSubItems.Add , , tablo(1, i)
        Next
    End With
    
End Sub
A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal