XL 2013 insérer ligne vide sur listvew en fonction d'un critère

osiris150

XLDnaute Occasionnel
Bonjour à tous,

J'utilise une listview avec beaucoup de lignes et pour des raisons de visibilité je souhaiterais pouvoir insérer une ligne vide entre chaque référence de commande. Je vous ai mis en pièce jointe le fichier test de ma listview actuelle + une copie d'écran avec ce que je souhaiterais comma résultat. Je ne sais pas si c'est possible et compliqué. En tous cas si quelqu'un pouvait regarder si c'est faisable.
Merci par avance.
Cordialement
 

Pièces jointes

  • listview osiris.xlsm
    948.6 KB · Affichages: 25
  • 09-10-2018 09-59-52.jpg
    09-10-2018 09-59-52.jpg
    171.1 KB · Affichages: 30

osiris150

XLDnaute Occasionnel
Bonjour Mr Boisgontier et merci pour votre exemple qui répond à ce que je recherche mais je travaille avec des listview uniquement car tout mon outil de travail en utilise avec beaucoup d'options et du coup je ne peux pas tout rechanger pour passer sur des listbox.
Pensez-vous que sur une listview cela soit possible ? Sinon tans pis je me résignerai :)
Merci
 

job75

XLDnaute Barbatruc
Bonjour osiris150, JB,

La boucle de remplissage de la ListView :
Code:
            For L = 1 To UBound(TabTemp, 1)
                If L > 1 Then
                    If TabTemp(L, 11) <> TabTemp(L - 1, 11) Then
                        .ListItems.Add , , ""
                        For Vcol = 1 To 9
                            .ListItems(X).ListSubItems.Add , , ""
                        Next
                        X = X + 1
                    End If
                End If
                .ListItems.Add , , TabTemp(L, 1)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 3)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 4)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 6)
                .ListItems(X).ListSubItems.Add , , Format(TabTemp(L, 7), "# ##0.00")
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 8)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 11)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 13)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 14)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 15)
                X = X + 1
            Next
Le tableau source est supposé trié sur les références (colonne K).

Fichier joint.

A+
 

Pièces jointes

  • listview osiris(1).xlsm
    955.3 KB · Affichages: 23

ChTi160

XLDnaute Barbatruc
Bonsoir osiris150
Bonsoir le Fil, le Forum
Une autre version (Perfectible)
je n'ai rien compris à la mise en couleur des éléments de la ListView (si tu veux expliquer Lol)
Bonne fin de Soirée
jean marie
 

Pièces jointes

  • Listview osiris Chti160.xlsm
    952.7 KB · Affichages: 17

osiris150

XLDnaute Occasionnel
Bonjour Jean-Marie

Votre version est excellente et fonctionne parfaitement. Votre code est pour moi trop complexe à comprendre mais je vais tout de même essayer de l'adapter à mes besoins. Celui de Job75 marchait aussi mais j'avais un souci lorsque je lançais une recherche. Le code ne fonctionnait plus correctement au niveau tri.... Pour les couleurs, ce n'est pas très important j'avais laissé cette partie dans l'exemple mais ne pas s'en préoccuper.
Merci pour votre aide !! Passez une excellente journée
Cordialement.
 

job75

XLDnaute Barbatruc
Bonjour osiris150, Jean-Marie,
Celui de Job75 marchait aussi mais j'avais un souci lorsque je lançais une recherche. Le code ne fonctionnait plus correctement au niveau tri....
Vous voulez insérer des lignes vides même avec la recherche ? Pas compliqué, ajoutez le même code dans la TextBox1_Change :
Code:
                If L > 1 Then
                    If TabTemp(L, 11) <> TabTemp(L - 1, 11) Then
                        .ListItems.Add , , ""
                        For I = 1 To 9
                            .ListItems(X).ListSubItems.Add , , ""
                        Next
                        X = X + 1
                    End If
                End If
Bonne journée.
 

osiris150

XLDnaute Occasionnel
Bonjour job75

J'ai mis comme vous m'avez dit le code dans la partie TextBox1_Change mais ça ne marche pas bien.
en effet si je fais une recherche par exemple avec le libellé "lampe" j'ai des espaces important entre chaque ligne.
Voir copie écran et fichier.
Merci
 

Pièces jointes

  • 10-10-2018 09-03-02.jpg
    10-10-2018 09-03-02.jpg
    98.6 KB · Affichages: 20
  • Copie de listview osiris(1).xlsm
    952.1 KB · Affichages: 19

job75

XLDnaute Barbatruc
Re,

Mais non ça n'allait pas, en fait il faut mémoriser la dernière référence filtrée :
Code:
    For L = 1 To UBound(TabTemp, 1)
 
        If UCase(TabTemp(L, 3)) Like UCase(TextBox1 & "*") Or _
         UCase(TabTemp(L, 4)) Like UCase("*" & TextBox1 & "*") Or _
         UCase(TabTemp(L, 11)) Like UCase("*" & TextBox1 & "*") Or _
         UCase(TabTemp(L, 14)) Like UCase("*" & TextBox1 & "*") Then
        
                If memo <> "" Then
                    If TabTemp(L, 11) <> memo Then
                        .ListItems.Add , , ""
                        For I = 1 To 9
                            .ListItems(X).ListSubItems.Add , , ""
                        Next
                        X = X + 1
                    End If
                End If
               
                .ListItems.Add , , TabTemp(L, 1)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 3)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 4)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 6)
                .ListItems(X).ListSubItems.Add , , Format(TabTemp(L, 7), "# ##0.00")
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 8)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 11): memo = TabTemp(L, 11) 'mémorisation
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 13)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 14)
                .ListItems(X).ListSubItems.Add , , TabTemp(L, 15)
         
               X = X + 1
        End If
       
    Next
Fichier (2).

A+
 

Pièces jointes

  • Copie de listview osiris(2).xlsm
    958 KB · Affichages: 18

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87