Regroupement des lignes dans listview

Signaler
Messages postés
41
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
5 mars 2008
-
Messages postés
41
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
5 mars 2008
-
Bonjour

Je vous donne un exemple de ce que je veux regrouper j'ai fait un trie par ordre alphabétique sur libellés et je voudrais regrouper les lait, les huile et les savons pour avoir la quantité total  des laits et la quantité total des huile et la quantité total des savon  :
   <?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1028" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1027" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1027" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1027" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1027" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1027" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line><v:line id="_x0000_s1027" style="Z-INDEX: 1; POSITION: absolute" coordsize="21600,21600" to="210.95pt,374.6pt" from="210.95pt,95.6pt"></v:line>    Libellés<gras>Quantité             Prix
G002           Lait                   10                      20
G002           Lait                   20                      20
G002           Lait                   50                      20 
F003            Huile                 50                     30
F003            Huile               100                     30 
H001           Savon                 5                      10
H001           Savon               15                      10
H001           Savon                40                     10 

Merci d'avance de m'aider à résoudre ce probléme qui me tracasse depuis longtemps.

9 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Beh moi je t'en passe un de savon !!

1/ Merci de poster qu'un seul topic
2/ beh les membres te repondent (la-bas) un minimum serait de leur répondre...

http://www.vbfrance.com/infomsg_REGROUPEMENT-LIGNES-DANS-LISTVIEW_1003646.aspx
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Ben...Mortalino...Que ce passe-t-il ? Ou est passé Missa ? Tiens cela va faire plaisir à Darksidious tout ça...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Re,

Encore une fois, fais un tri sur la colonne :  Libélés

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bon !
 
j' espère que la réaction des membres t' a servi de leçon
pour tes prochains postes. 
Et pour te montrer notre bonne volonté , voici un code
conçu spécialement pour toi.Fais en bon usage.
 
Sub Regroupement
   Dim  xLignes As Integer,
   xLignes =ListView1.ListItems.Count
   If xLignes  < 2 Then Exit Sub
   
   Dim i As Integer, Total As Integer
 
 With ListView1
  
  'On parcours la listview
   i=1
  
Do While i < xLignes-1
      'On réinitialise Total
      Total=CInt(.ListItems(i).SubItems(2).Text)
      
      Do While  .ListItems(i).Text=.ListItems(i+1).Text
         'on cumule Total
          Total=Total + CInt(.ListItems(i+1).SubItems(2).Text) 
          'On Supprime la ligne en trop
          .ListItems).Remove (i+1)
          'on réajuste le nombre de lignes
           xLigne=xLignes-1
       Loop 'si on sort de cette boucle, c' est que le code change
      
        'on inscrit Total dans la colonne 3
       .ListItems(i).SubItems(2).Text=Total
       
    Loop  'passe à la ligne suivante


End With
End Sub

Bon courage.


<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
corriges :
CInt(.ListItems(i).ListSubItems(2).Text)

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut
Un superbe exemple de ce que tu cherches http://www.vbfrance.com/article.aspx?ID=9852 où en plus, tu définis le type de champ sur lequel tu veux faire le tri : permet de trier du texte, des chiffres ou des dates.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
41
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
5 mars 2008

Ce code ne marche pas

Sub Regroupement
   Dim  xLignes As Integer
   xLignes =ListView1.ListItems.Count
   If xLignes  < 2 Then Exit Sub
   
   Dim i As Integer, Total As Integer
 
 With ListView1
  
  'On parcours la listview
   i=1
  
Do While i < xLignes-1
      'On réinitialise Total
      Total=CInt(.ListItems(i).SubItems(2).Text)
      
      Do While  .ListItems(i).Text=.ListItems(i+1).Text
         'on cumule Total
          Total=Total + CInt(.ListItems(i+1).SubItems(2).Text) 
          'On Supprime la ligne en trop
          .ListItems).Remove (i+1)
          'on réajuste le nombre de lignes
           xLigne=xLignes-1
       Loop 'si on sort de cette boucle, c' est que le code change
      
        'on inscrit Total dans la colonne 3
       .ListItems(i).SubItems(2).Text=Total
       
    Loop  'passe à la ligne suivante
End With
End Sub
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Parce que tu n' a pas fait la correction signalée !

Do While i < xLignes-1
      'On réinitialise Total
      Total= CInt(.ListItems(i). ListSubItems(2). Text)

et sur la ligne
     'on cumule Total
     Total =Total + CInt(.ListItems(i+1).ListSubItems(2).Text) 

Et surtout n' oublie pas de trier avant d' appeler la procédure 
    ListView1.Sorted=True
    ListView1.SortKey=0   '  colonne des codes

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
41
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
5 mars 2008

Bonjour

le code ne marche pour le regroupement méme j'ai essayé de modifier ça ne marche pas. 

Sub Regroupement()
   Dim xLignes As Integer
   xLignes = Lv.ListItems.Count
   If xLignes < 2 Then Exit Sub
   
   Dim i As Integer, Total As Integer
 
 With Lv
  
  'On parcours la listview
   i = 1
  
Do While i < xLignes - 1
      'On réinitialise Total
      Total = CInt(.ListItems(i).ListSubItems(2).Text)


      
      'et sur la ligne
     'on cumule Total
     Total = Total + CInt(.ListItems(i + 1).ListSubItems(2).Text)




          'On Supprime la ligne en trop
          .ListItems.Remove (i + 1)
          'on réajuste le nombre de lignes
           xLignes = xLignes - 1
       Loop 'si on sort de cette boucle, c' est que le code change
      
        'on inscrit Total dans la colonne 3
       .ListItems(i).SubItems(2).Text = Total
       
    Loop  'passe à la ligne suivante


End With
End Sub