Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ListView avec informations de differents feuillets dans le même SubItem

belerofon

XLDnaute Occasionnel
Hello World,
Je reviens à la charge avec mon sempiternel probleme mais réduit à sa plus simple expression dans ce fichier exemple...

Un bouton, lance un USF avec une ListView
Impossible d'écrire un code qui dans la premiere colonne m indiquerait les items suivants :1,2,3,4,5 , représentant ceux de la colonne B des onglets Alain et Bruno
dans la seconde et troisieme colonne, pour chaque ligne une concatenation des celulles C3 et D3 pour la ligne 1 colonne 2 de ma listview...

En resumé ma premiere ligne de ma listview serait : 1 ; AG ; DF
Sachant que le but est d appliquer ca a un tableau immense, donc il faudrait reussir a créer une boucle avec une variable de préférence...

Je buche depuis 2 jours pour info...

Merci de votre aide...

J.
 

Pièces jointes

  • Exemple ListView.xls
    72.5 KB · Affichages: 56
  • Exemple ListView.xls
    72.5 KB · Affichages: 59
  • Exemple ListView.xls
    72.5 KB · Affichages: 63
Dernière édition:

Grand Chaman Excel

XLDnaute Impliqué
Re : ListView avec informations de differents feuillets dans le même SubItem

Bonsoir belerofon,

Voici une proposition, il suffit de créer un tableau pour stocker les informations qui serviront à construire ta listview. On commence par la 1re feuille pour créer le tableau et dans un 2e temps, on boucle sur les autres feuilles pour concatener le texte des colonnes 2 et 3.

VB:
Private Sub UserForm_Initialize()
Dim Feuilles() As Variant, Tablo() As Variant
Dim Cel As Range
Dim i As Integer, j As Integer

' *** Creation du tableau qui servira à construire le listview

'Listes des feuilles à compiler
Feuilles = Array("Alain", "Bruno")
ReDim Tablo(1 To 3, 1 To 1) 'initialisation du tablo, 1re ligne sera vide

'Creation du tablo à partir de la premiere feuille
    Set Cel = Sheets(Feuilles(0)).Range("B2")
    Do Until IsEmpty(Cel)  'on suppose qu'il n'y a pas de lignes vides
        ReDim Preserve Tablo(1 To 3, 1 To UBound(Tablo, 2) + 1)
        Tablo(1, UBound(Tablo, 2)) = Cel
        Tablo(2, UBound(Tablo, 2)) = Cel.Offset(0, 1)
        Tablo(3, UBound(Tablo, 2)) = Cel.Offset(0, 2)
        Set Cel = Cel.Offset(1, 0)
    Loop

'On concatenete le texte des colonnes 2 et 3
For i = LBound(Feuilles) + 1 To UBound(Feuilles)
    Set Cel = Sheets(Feuilles(i)).Range("B2")
    j = 2
    Do Until IsEmpty(Cel)
        Tablo(2, j) = Tablo(2, j) & Cel.Offset(0, 1)
        Tablo(3, j) = Tablo(3, j) & Cel.Offset(0, 2)
        Set Cel = Cel.Offset(1, 0)
        j = j + 1
    Loop
Next i

'On cree le listview à partir du tableau
With Me.ListView1
    With .ColumnHeaders
        .Clear
        .Add , , "Numéro", 60
        .Add , , "CAT A", 45
        .Add , , "CAT B", 45
    End With
    '------------------------Paramétre les détails du tableau
    .View = 3
    .Gridlines = True
    .FullRowSelect = True
    .HideColumnHeaders = False
    .LabelEdit = 1
End With

For i = 2 To UBound(Tablo, 2)   'début à 2 car 1re ligne est vide
    With ListView1
        .ListItems.Add , , Tablo(1, i)
        .ListItems(.ListItems.Count).ListSubItems.Add , , Tablo(2, i)
        .ListItems(.ListItems.Count).ListSubItems.Add , , Tablo(3, i)
    End With
Next i

End Sub

A+
 

belerofon

XLDnaute Occasionnel
Re : ListView avec informations de differents feuillets dans le même SubItem

Merci grand chaman Excel, décidemment il va falloir que je m'y mette aux tableaux ca a l'air de dépatouiller, tout le monde en parler...
Next thing sur ma ToDo List...

Pour info a force de me torturer les méninges j'ai réussi à trouver une solution alternative plus que satisfaisante pendant que je tournais en rond dans mon lit...

Bonne journée à tous je file à ma garde...
J.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…