ferdhy
XLDnaute Junior
Bonjour,
J'ai des entrées journalieres de tonnage et de pourcentage dans la colonne " Entree journaliere" chaque entrée a une date, un code permettant de savoir si c'est un tonnage T ou un pourcentage P.
je doit donner le pourcentage à une date precise, soit la somme de la multiplication de chaque tonnage par son pourcentage, diviser par la somme de tonnage (Somme(TxP)/somme(T)).
J'utilise la fonction ci bas et je sèche à la ligne pourcent = (P / m) / 100
Pouvez vous me donner une solution ?
***************************************************
Function CalculPoucentage3(jours, val1, val2, mois)
Application.ScreenUpdating = False
i = 0
j = 2
While Cells(j, 2).Value <> ""
If (Cells(j, 2).Value = val2 And Cells(j, 4).Value <= jours And Cells(j, 5).Value = mois) Then
tb = Cells(j, 11).Value ' valleur à multiplier
m = m + tb ' Somme de valleurs multipliées
'************************************************
' ** verification dans la liste de toutes les ligne où la date est egale à jours et le code à Val1
n = Cells(j, 4).Value ' control pour trouver la valeur de d
Set d = Range("F:F").Find(n, LookIn:=xlValues) ' je veux utiliser Set, je pense qu'il est plus rapide
If Not d Is Nothing Then
dernier = d.Address
Do
If (d.Offset(0, -3).Value = val1) Then
P = P + tb * d.Offset(0, 5).Value ' on fait le produit
Set d = Range("f:f").FindNext(d)
End If
Loop While d Is Nothing
End If
End If
j = j + 1
Wend
3:
pourcent = (P / m) / 100
CalculPoucentage3 = pourcent
Application.ScreenUpdating = True
End Function
Sub Pourcentage3()
a = Cells(4, 9).Value
mois = Month(a)
b = Cells(1, 8).Value
c = Cells(2, 8).Value
Cells(3, 8).Value = CalculPoucentage3(a, b, c, mois)
End Sub
J'ai des entrées journalieres de tonnage et de pourcentage dans la colonne " Entree journaliere" chaque entrée a une date, un code permettant de savoir si c'est un tonnage T ou un pourcentage P.
je doit donner le pourcentage à une date precise, soit la somme de la multiplication de chaque tonnage par son pourcentage, diviser par la somme de tonnage (Somme(TxP)/somme(T)).
J'utilise la fonction ci bas et je sèche à la ligne pourcent = (P / m) / 100
Pouvez vous me donner une solution ?
***************************************************
Function CalculPoucentage3(jours, val1, val2, mois)
Application.ScreenUpdating = False
i = 0
j = 2
While Cells(j, 2).Value <> ""
If (Cells(j, 2).Value = val2 And Cells(j, 4).Value <= jours And Cells(j, 5).Value = mois) Then
tb = Cells(j, 11).Value ' valleur à multiplier
m = m + tb ' Somme de valleurs multipliées
'************************************************
' ** verification dans la liste de toutes les ligne où la date est egale à jours et le code à Val1
n = Cells(j, 4).Value ' control pour trouver la valeur de d
Set d = Range("F:F").Find(n, LookIn:=xlValues) ' je veux utiliser Set, je pense qu'il est plus rapide
If Not d Is Nothing Then
dernier = d.Address
Do
If (d.Offset(0, -3).Value = val1) Then
P = P + tb * d.Offset(0, 5).Value ' on fait le produit
Set d = Range("f:f").FindNext(d)
End If
Loop While d Is Nothing
End If
End If
j = j + 1
Wend
3:
pourcent = (P / m) / 100
CalculPoucentage3 = pourcent
Application.ScreenUpdating = True
End Function
Sub Pourcentage3()
a = Cells(4, 9).Value
mois = Month(a)
b = Cells(1, 8).Value
c = Cells(2, 8).Value
Cells(3, 8).Value = CalculPoucentage3(a, b, c, mois)
End Sub