Bonjour,

Je rentre directement dans le vif du sujet.

Voici une structure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Structure article
    Dim prixUnit As Decimal
    Dim quantite As Integer
    Dim total As Decimal
    Dim rayon As String
    Dim rabais As Decimal
End Structure
Et une deuxième
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Structure ssTotal
    Dim art() as article
    Dim cpt As integer
    Public Sub AddArticle(ByVal a As article)
        ReDim Preserve art(cpt)
        cpt += 1
    End Sub
    Public Sub Initialize()
        cpt = 0
    End Sub
End Structure
Bon après, je fais tout un traitement assez fastidieux à partir d'un fichier contient les tickets de caisse d'une journée dont je vous épargnerai les détails.

Mais à un moment, je fais ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Dim caSousTotal as Decimal = 0
For Each elem As article in sousTotal.art
    caSousTotal += elem.total
Next
 
Dim tmp As Decimal = 0
For Each elem As article in sousTotal.art
    tmp = CDec((CInt(v) / 100) * (elem.total / caSousTotal))
    elem.rabais = tmp
Next
Ne vous occupez pas du calcul, il me donne bien le résultat escompté.
Le soucis est que la propriété rabais de l'article reste toujours à 0...
J'ai même essayé d'affecté directement la valeur 2 dans rabais en faisant elem.rabais = 2 mais ça ne change rien, rabais reste à 0.

Est-ce que quelqu'un aurait une idée du pourquoi ?

Merci d'avance.

Griftou.