Total d'une colonne dans une Listview [Résolu]

cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 28 déc. 2013 à 13:33 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 28 déc. 2013 à 21:28
Bonjour,
dans ma listview j'ai 5 colonnes dont une avec des chiffres.
comment faire pour avoir le total dans un textbox de cette colonne.

merci
@ plus
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 28/12/2013 à 21:29
1
Merci
Bon...
Mais tu sais quoi ? Au lieu d'aller "étaler" "ailleurs" une solution que tout le monde connaît et qui n'apporte rien aux développeurs, tu ferais mieux d'éviter tes DEUX boucles (relis-moi) ===>>>

......
dim mon_total as long
While Not Rs.EOF
Set ItemX = List.ListItems.add(, , Rs.Fields("salarié"))
ItemX.SubItems(1) = Rs.Fields("chantier")
ItemX.SubItems(2) = Rs.Fields("date")
ItemX.SubItems(3) = Rs.Fields("heure")
ItemX.SubItems(4) = Rs.Fields("mo")
mon_total = mon_total + ItemX.SubItems(3)
Label1 = Rs.Fields("num") + 1 & " _" & Text1.Text
Rs.MoveNext
Wend
msgbox mon_total
......

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend

Merci ucfoutu 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 76 internautes ce mois-ci

Commenter la réponse de ucfoutu
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 28 déc. 2013 à 14:32
0
Merci
Bonjour

Tu parcours les éléments de la liste et tu sommes la colonne qui t'intéresse

ex:
Dim total As Integer = 0
For Each item As ListViewItem In ListView1.Items
  total += CInt(item.SubItems(2).Text)'3eme colonne
Next
TextBox1.Text = total.ToString()
 
Commenter la réponse de cs_Robert33
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 28 déc. 2013 à 16:23
0
Merci
Bonjour, cs_Robert33,
Te reste plus qu'à transposer en VB6 (la présente section du forum)...
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 28 déc. 2013 à 16:29
oups...
va falloir que je réinstalle un vb6 ...
Commenter la réponse de ucfoutu
cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 28 déc. 2013 à 16:30
0
Merci
merci pour ton code, mais ça ne fonctionne pas
j'ai mis ton code dans l'évenement click de ma combo

Private Sub cbb_nom_Click()
Dim Total As Integer
Call Connect
List.ListItems.Clear
Sql = "Select * from pointage where salarié='" & cbb_nom.Text & "'"
Rs.Open Sql, Db, adOpenStatic, adLockPessimistic

    While Not Rs.EOF
    Set ItemX = List.ListItems.add(, , Rs.Fields("salarié"))
    ItemX.SubItems(1) = Rs.Fields("chantier")
    ItemX.SubItems(2) = Rs.Fields("date")
    ItemX.SubItems(3) = Rs.Fields("heure")
    ItemX.SubItems(4) = Rs.Fields("mo")
    Label1 = Rs.Fields("num") + 1 & " _" & Text1.Text
       
          Rs.MoveNext
     
    Wend
    
Call Deconnect


For Each item As ListViewItem In List.Items
  total += CInt(item.SubItems(3).Text)'3eme colonne
Next
TextBox1.Text = Total.ToString()

End Sub
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 28 déc. 2013 à 16:42
Désolé Petchy, le code que j'ai donné est pour du VB donet,

je suis en train de réinstaller un VB6 pour transposer le code.
Commenter la réponse de cs_petchy
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 28/12/2013 à 16:42
0
Merci
Evidemment (cs_Robert33 t'a donné un code VB.Net ...)
Allez :
- quelle est la colonne concernée ?
- les numériques qui y sont sont-ils des décimaux ? Et si oui : avec quel séparateur décimal ?*
Tu auras ta solution dès que tu auras répondu avec précision à ces trois questions.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Commenter la réponse de ucfoutu
cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 28 déc. 2013 à 17:32
0
Merci
re,
les numériques ne sont pas des décimaux et c la colonne 3
ItemX.SubItems(3) = Rs.Fields("heure")
Commenter la réponse de cs_petchy
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 28/12/2013 à 17:37
0
Merci
Explique donc comment tu es passé de :
"dans ma listview j'ai 5 colonnes dont une avec des chiffres.
comment faire pour avoir le total dans un textbox de cette colonne"

à
"les numériques ne sont pas des décimaux et c la colonne 3
ItemX.SubItems(3) = Rs.Fields("heure")"

Que veux-tu dire ?
A moins que par "heure" tu veuilles dire "durée" exprimée en heures entières !

Et le subitems(3), c'est la colonne 4 et non la 3, hein ...

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 28/12/2013 à 17:53
0
Merci
Mais je vais considérer qu'en colonne 4 (tes subitems(3)) tu as bien des chiffres et qu'ils sont bien des entiers ===>>>

Dim mon_total As Long
For i = 1 To ListView1.ListItems.Count
mon_total = mon_total + ListView1.ListItems(i).SubItems(3)
Next
MsgBox mon_total

PS : j'espère que tu sauras t'en inspirer pour n'avoir que ta boucle While (et y calculer en même temps que tu insères), et non deux boucles (une while et l'autre For, hein ...
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Commenter la réponse de ucfoutu
cs_petchy 710 Messages postés jeudi 20 février 2003Date d'inscription 19 mai 2015 Dernière intervention - 28 déc. 2013 à 18:39
0
Merci
merci pour le code, ça fonctionne

Dim mon_total As Long
 For i = 1 To List.ListItems.Count
   mon_total = mon_total + List.ListItems(i).SubItems(3)
 Next
Text2.Text = mon_total
Commenter la réponse de cs_petchy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.