Faire la somme des items sélectionnés dans une listview

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alias_2003

XLDnaute Occasionnel
Bonjour à tous,
j'essaie de comprendre le fichier de blord (https://www.excel-downloads.com/threads/somme-colonne-1-listview.145640/).
Je commence à saisir, mais je me pose une question... Est-il possible de faire la somme des items sélectionnés ??
Par exemple, si on sélectionne les lignes 10 et 50, peut-on faire le total de la colonne "Détail" (soit 13+53) ?
Merci de vos lumières 🙂
Bonne journée,
 

Pièces jointes

Re : Faire la somme des items sélectionnés dans une listview

Bonsoir alias_2003

Bien sur que tu peux, insères ce code dans ton USF
Code:
Private Sub ListView1_Click()
  Dim TOTAL_LIGNES As Single
  TOTAL_LIGNES = 0
  With Me.ListView1
    For i = 1 To .ListItems.Count
      If .ListItems(i).Selected = True Then
      TOTAL_LIGNES = TOTAL_LIGNES + CDbl(.ListItems(i).ListSubItems(4))
    End If
  Next i
  End With
  TextBox1.Value = TOTAL_LIGNES
End Sub

A+
 
Re : Faire la somme des items sélectionnés dans une listview

Bonjour BrunoM45, le forum,
Je reviens vers vous avec une autre question... Toujours sur le même fichier, est-il possible de modifier l'alimentation de la listbox et de retirer automatiquement de la liste, les lignes où apparaît "Fait" en colonne F ??
Merci de vos explications !
Bon dimanche
 

Pièces jointes

Re : Faire la somme des items sélectionnés dans une listview

Bonjour BrunoM45, le forum,
Je reviens vers vous avec une autre question... Toujours sur le même fichier,
j'essaie de remplacer la listview par une listbox (pas d'intérêt en particulier, juste pour apprendre...) et je voudrais savoir s'il est possible de modifier l'alimentation de la listbox et de retirer automatiquement de la liste, les lignes où apparaît "Fait" en colonne F ??
Merci de vos explications !
Bon dimanche
 
Re : Faire la somme des items sélectionnés dans une listview

re,🙂

c'est simple je passe par un tableau pour remplir la listbox.. t() vu qu'il y a des conditions plus simple & plus rapide

on aurait pu utiliser .list ou AddItem avec une boucle classique

Code:
Dim t(), t1(), i As Long, x As Long, k As Long 'declaration variable
Private Sub UserForm_Initialize()
  t = Range("b2:f" & Cells(Rows.Count, 2).End(3).Row) 'tableau je vais jusqu'a colonne f ("fait')
  x = 1 'row
  For i = 1 To UBound(t) 'boucle sur tableau
  If t(i, 5) = "" Then 'condition
  ReDim Preserve t1(1 To 4, 1 To x) 'met en memoire seulement les 4 premieres colonnes
  For k = 1 To 4 'boucle sur colonne
  t1(k, x) = t(i, k) 'rempli tableau
  Next k 'fin boucle k
  x = x + 1 'row+1
  End If
  Next i 'fin boucle
  ListBox1.Column = t1 'ecrit ..... aurait pu ecrire listbox1.list=application.transpose(t1)
End Sub
Private Sub ListBox1_Change()
 TextBox1 = 0 'pour eviter erreur textbox vide
 For i = 0 To ListBox1.ListCount - 1 'boucle sur la listbox multiselect
 If ListBox1.Selected(i) Then 'condition si vrai
 TextBox1 = CDbl(TextBox1) + CDbl(ListBox1.List(i, 3)) 'fait la somme ..
 End If
 Next i 'fin boucle
End Sub

'ListBox1.List(i, 3) attention listbox indice demarre a 0 donc 3 & pas 4 ... premiere colonne =0
 
Re : Faire la somme des items sélectionnés dans une listview

Bonjour le fil

Juste comme ça au passage,
je ne comprendrais jamais qu'on étale ça science à coup de tableau... pour des gens qui à la base ont déjà du mal à comprendre VBA !?

Pourquoi devoir faire compliqué, car pour un néophyte, c'est compliqué !

Bref c'était mon coup de gueule du jour 😉

Voici le code
VB:
Sub LoadListView1()
'Load le listview avec les garanties existantes
  Dim i As Long
  Dim j As Integer, x As Integer
  Dim somme As Double
  Dim Sht As Worksheet  ' Définir une variable objet pour la feuille
  ' Définir la feuille ou se trovue les données
  Set Sht = Worksheets("DIM")
  ' Avec la Listview
  With ListView1
    x = .ListItems.Count + 1
    .ListItems.Clear
    With .columnHeaders
      .Clear
      .Add , , "Temps", 50, lvwColumnLeft
      .Add , , "Projet", 50, lvwColumnLeft
      .Add , , "Détail", 50, lvwColumnLeft
      .Add , , "Détail", 100, lvwColumnLeft
      .Add , , "Détail", 50, lvwColumnLeft
    End With
    .View = 3: .FullRowSelect = True: .Gridlines = True: .labeledit = 1
    For i = 2 To Sht.Range("A65536").End(xlUp).Row
      If Left(Sht.Cells(i, 1), 8) = 20100715 Then
        ' Si dans la colonne F, il n'y a rien
        If UCase(Sht.Range("F" & i).Value) <> "FAIT" Then
          somme = 0
          .ListItems.Add , , Format(Sht.Cells(i, 2), "0.00")
          .ListItems(.ListItems.Count).ListSubItems.Add , , Sht.Cells(i, 3)
          .ListItems(.ListItems.Count).ListSubItems.Add , , Sht.Cells(i, 4)
          .ListItems(.ListItems.Count).ListSubItems.Add , , Sht.Cells(i, 1)
          For j = 1 To 2  ' ADDITION DES SUBITEMS
            somme = somme + CDbl(.ListItems(.ListItems.Count).ListSubItems(j))
          Next j
          .ListItems(.ListItems.Count).ListSubItems.Add , , somme _
                  + CDbl(.ListItems(.ListItems.Count))  ' FACULTATIF
          TOTAL_LIGNES = TOTAL_LIGNES + somme + CDbl(.ListItems(.ListItems.Count))
        End If
      End If


    Next i
    TextBox1.Value = TOTAL_LIGNES
  End With
End Sub

A+
 
Dernière modification par un modérateur:
Re : Faire la somme des items sélectionnés dans une listview

Bonjour laetitia90, BrunoM45, Si..., le forum,
Merci beaucoup pour vos réponses ! Je pense que Bruno a raison, mon niveau est bien trop faible pour que je comprenne le code de Laetitia...
J'ai encore du travail !
Bonne journée,
Amicalement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

L
Réponses
5
Affichages
840
H
Réponses
2
Affichages
934
hemg68
H
Retour