Totaux des item d'une listevien foncionne pour 1 ligne

geraldvc

XLDnaute Junior
re a tous

j'avais reçu ce code il y a qq temps que j'ai aménagé mais il ya un soucis! quand j'ai 2 lignes il double les résultat?
comme il est la les résultats sont bon, ajoutez une ligne de donnée et ça foire?

Merci d'avance
 

Pièces jointes

  • calcul des item.xls
    38.5 KB · Affichages: 56

jp14

XLDnaute Barbatruc
Re : Totaux des item d'une listevien foncionne pour 1 ligne

Bonjour

L'erreur provient de la méthode de calcul. Il faut travailler ligne par ligne et faire la somme au fur et à mesure.

Montant pour une ligne = Nb d'article * Prix unitaire TTC * coefficient de remise
CCur(.ListItems(i).ListSubItems(4).Text)*CCur(.ListItems(i).ListSubItems(1).Text)*(1-CCur(.ListItems(i).ListSubItems(3).Text))
Ccur est un format pour les calculs financiers.

JP
 
Dernière édition:

geraldvc

XLDnaute Junior
Re : Totaux des item d'une listevien foncionne pour 1 ligne

salut jp

peux tu me dire exactement ou je dois mettre la ligne CCur car ...?

Merci

Private Sub UserForm_Initialize()
With Me.ListView1: .Gridlines = True: .View = 3
With .ColumnHeaders 'LES ENTETES SONT EN LIGNE 4
For i = 1 To ActiveSheet.UsedRange.Columns.Count
.Add , , ActiveSheet.Cells(1, i).Value, 70
Next i
End With
' INITIALISATION (Les données à charger commencent à la ligne 5)
For i = 2 To ActiveSheet.UsedRange.Rows.Count + 2
.ListItems.Add , , ActiveSheet.Cells(i, 1).Value
.ListItems(.ListItems.Count).Key = "R " & i
For j = 2 To ActiveSheet.UsedRange.Columns.Count
.ListItems(.ListItems.Count).ListSubItems.Add , , ActiveSheet.Cells(i, j).Value
Next j
Next i

For i = 1 To .ListItems.Count



On Error Resume Next ' Ordre obligé en raison des SubItems vides

Me.Label4 = CCur(.ListItems(i).ListSubItems(4).Text)*CCur(.Lis tItems(i).ListSubItems(1).Text)*(1-CCur(.ListItems(i).ListSubItems(3).Text))
















End Sub
 

jp14

XLDnaute Barbatruc
Re : Totaux des item d'une listevien foncionne pour 1 ligne

Bonsoir

CCur remplace CDbl pour les calculs monétaires.
Un exemple de code
Code:
For i = 1 To .ListItems.Count
  
  
  
 On Error Resume Next
TOTAL_COL_2 = TOTAL_COL_2 + CCur(.ListItems(i).ListSubItems(1).Text) * CCur(.ListItems(i).ListSubItems(4).Text)

Next i
      
End With
Me.Label1 = "Total HTVA : " & TOTAL_COL_2

JP
 
Dernière édition:

geraldvc

XLDnaute Junior
Re : Totaux des item d'une listevien foncionne pour 1 ligne

bon j'ai fait des essais ça ne va pas,

car il faut que je travail par ligne, la tva ne peux pas s'additionner !
donc ceci pour la première ligne ( (2 (nbr x 100(prix))-10%(le remise))+21%(tva) =217,8
pour la deuxième ligne ( (1 (nbr x 100(prix)))+21%(tva) =121

J'ai besoin de total ligne 1: 1 +2 =338,8 (montant tvc) 2: montant tva 58,8 3: montant htva 280 et 4: montant de la remise 20

merci si tu sais
 

jp14

XLDnaute Barbatruc
Re : Totaux des item d'une listevien foncionne pour 1 ligne

Bonjour

Ci dessous le code avec une autre approche : affichage dans la ListView1 des éléments Montant HT, TVA, Montant TTC, (ce qui permet de vérifier les calculs)

Pour ne pas afficher les valeurs il suffit de mettre 0 au niveau de la dimension de la colonne.

Code:
Private Sub UserForm_Initialize()
With Me.ListView1: .Gridlines = True: .View = 3
    With .ColumnHeaders
       For i = 1 To ActiveSheet.UsedRange.Columns.Count
       .Add , , ActiveSheet.Cells(1, i).Value, 70
       Next i
       .Add , , "Montant HT"
       .Add , , "Montant TVA"
       .Add , , "Montant TTC"
    End With

       For i = 2 To ActiveSheet.UsedRange.Rows.Count + 2
         .ListItems.Add , , ActiveSheet.Cells(i, 1).Value
         .ListItems(.ListItems.Count).Key = "R " & i
             For j = 2 To ActiveSheet.UsedRange.Columns.Count
                .ListItems(.ListItems.Count).ListSubItems.Add , , ActiveSheet.Cells(i, j).Value
             Next j
             montantht = ActiveSheet.Cells(i, 2).Value * ActiveSheet.Cells(i, 5).Value * (1 - ActiveSheet.Cells(i, 4).Value)
             tva = ActiveSheet.Cells(i, 2).Value * ActiveSheet.Cells(i, 5).Value * (1 - ActiveSheet.Cells(i, 4).Value) * ActiveSheet.Cells(i, 3).Value
             .ListItems(.ListItems.Count).ListSubItems.Add , , montantht
            .ListItems(.ListItems.Count).ListSubItems.Add , , tva
            .ListItems(.ListItems.Count).ListSubItems.Add , , tva + montantht
       
       totalht = totalht + montantht
       totaltva = totaltva + tva
       totalttc = totalttc + tva + montantht
      Next i
End With
Me.Label1 = "Total HTVA : " & totalht
Me.Label2 = "Total TVAC : " & totalttc
Me.Label3 = "Total tva : " & totaltva
End Sub

A tester

JP
 

Discussions similaires

Réponses
18
Affichages
621

Statistiques des forums

Discussions
312 193
Messages
2 086 059
Membres
103 110
dernier inscrit
Privé