Totaliser 2 colonnes dans une listbox

Chri8Ed

XLDnaute Occasionnel
Bonjour à tous

Je souhaiterais faire la somme de 2 colonnes dans ma ListBox
J'ai bien trouvé des bouts de codes sur le Forum
Mais le moins que je puisse dire,
Cela ne fonctionne pas terrible
Notamment lorsque les 2 colonnes comportent des nombres

Je mets un bout de fichier avec ma Listbox
Un petit coup de main me serait bien utile

Merci
A+
 

Pièces jointes

  • Total Listbox.xlsm
    20.6 KB · Affichages: 29
  • Total Listbox.xlsm
    20.6 KB · Affichages: 38
  • Total Listbox.xlsm
    20.6 KB · Affichages: 46

jpb388

XLDnaute Accro
Re : Totaliser 2 colonnes dans une listbox

Bonjour Chri8E
change l'ancienne par celle ci
Code:
Private Sub TextBox1_Change()
Dim Tablo()
Dim Nb As Integer

  If TextBox1 = "" Then Exit Sub
  With ListBox1
    .Clear
    .ColumnCount = 5 'Nombre de colonnes affichée dans la Listbox (4 colonnes + celle qui est cachée)
    '.ColumnWidths = "-1;-1;-1;-1;-1;0"
    For L = 1 To Cells(Rows.Count, 2).End(xlUp).Row
      If Cells(L, 2) > 0 Then
        If Cells(L, 6) Like "*" & TextBox1 & "*" Then
        'la recherche, ici c'est la colonne F
          Nb = Nb + 1
          ReDim Preserve Tablo(1 To 6, 1 To Nb)
          Tablo(1, Nb) = Cells(L, 2)
          Tablo(2, Nb) = Cells(L, 6) & Space(100 - Len(Cells(L, 6)))
          Tablo(5, Nb) = Format(Cells(L, 9), "0.00")
          Tablo(4, Nb) = Cells(L, 8)
          Tablo(3, Nb) = Format(Cells(L, 7), "0.00")
          Tablo(6, Nb) = L 'Gestion ds numéros de colonnes (Absolument indispensable)
        End If
      End If
    Next L
    If Nb = 0 Then Exit Sub
    If UBound(Tablo, 2) = 1 Then
      .AddItem Tablo(1, 1)
      .List(.ListCount - 1, 1) = Tablo(2, 1)
      .List(.ListCount - 1, 2) = Tablo(3, 1)
      .List(.ListCount - 1, 3) = Tablo(4, 1)
      .List(.ListCount - 1, 4) = Tablo(5, 1)
      .List(.ListCount - 1, 5) = Tablo(6, 1)
    Else
      .List() = Application.Transpose(Tablo)
    End If
    .BackColor = &H80FF80
  End With
Dim Somme1 As Currency, Somme2 As Currency, i%
For i = 0 To Me.ListBox1.ListCount - 1
   If Me.ListBox1.List(i, 2) <> "" Then Somme1 = Somme1 + CCur(Me.ListBox1.List(i, 2))
   If Me.ListBox1.List(i, 4) <> "" Then Somme2 = Somme2 + CCur(Me.ListBox1.List(i, 4))
Next
Me.TextBox2 = Somme1
Me.TextBox3 = Somme2

End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Totaliser 2 colonnes dans une listbox

Bonjour Chri8Ed

En supposant avoir compris ce que tu souhaites

Edit : Salut jpb388
 

Pièces jointes

  • Total Listbox.xlsm
    20.9 KB · Affichages: 37
  • Total Listbox.xlsm
    20.9 KB · Affichages: 44
  • Total Listbox.xlsm
    20.9 KB · Affichages: 49

Chri8Ed

XLDnaute Occasionnel
Re : Totaliser 2 colonnes dans une listbox

Bonjour JPB388, Bonjour PierreJean

Merci à tous les deux.
Vos codes fonctionnent parfaitement :)

PierreJean, si je comprends bien, le code à proprement dit pour le calcul des 2 totaux se résout uniquement a :
Code:
tot1 = tot1 + Cells(L, 9)
tot2 = tot2 + Cells(L, 7)

Je suis surpris par cette simplicité ??
J’étais parti dans des bouches

Mais à quoi servent ces 2 lignes ?
Code:
tot1 = 0
tot2 = 0



JPB388
J’ai un peu de mal à comprendre la macro ?
Semble t-il tu te base non pas par rapport aux cellules du tableau comme le fait PierreJean (Si j’ai bien compris sa technique)
mais par rapport aux nombres listées directement dans la ListBox ?
Et tu convertis le montant des 2 Textbox en valeur numériques pour pouvoir faire les totaux ??

A+
 

Discussions similaires

Réponses
18
Affichages
621

Statistiques des forums

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