Regroupement des lignes dans listview

Philppe2007 Messages postés 41 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 5 mars 2008 - 30 août 2007 à 01:57
Philppe2007 Messages postés 41 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 5 mars 2008 - 3 sept. 2007 à 14:28
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

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
30 août 2007 à 02:15
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
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
30 août 2007 à 08:29
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

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
30 août 2007 à 08:31
Re,

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

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
30 août 2007 à 17:01
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 />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
30 août 2007 à 17:04
corriges :
CInt(.ListItems(i).ListSubItems(2).Text)

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 août 2007 à 00:33
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)
0
Philppe2007 Messages postés 41 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 5 mars 2008
31 août 2007 à 14:08
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
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
31 août 2007 à 14:21
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 />
0
Philppe2007 Messages postés 41 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 5 mars 2008
3 sept. 2007 à 14:28
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
0
Rejoignez-nous