Bonjour,
J'ai ce code, mais j'aimerais ajouter deux autres conditions, la première de ne pas additionner dans nb.count si la cellule contient 0 ou que le contenu de la cellule a comme résultat une erreur de division par 0.
Autre chose dans le sumif, il ne doit pas tenir compte des divisions par zero non plus.
'Inscription des variables
Dim var_debut, var_fin, var_debut1, var_fin1, ligne
'pour délimiter ma période connue situé dans les cellules V4 et V5, + V9 et V10 de la feuille TABLEAU DE BORD
' Je vais chercher l'adresse du début et fin de ma première période
var_debut = Replace([V4], "$M$", "")
var_fin = Replace([V5], "$M$", "")
' Je vais chercher l'adresse du début et fin de ma deuxième période
var_debut1 = Replace([V9], "$M$", "")
var_fin1 = Replace([V10], "$M$", "")
'boucle sur codes à comparer
For ligne = 20 To Range("J" & Rows.Count).End(xlUp).Row
'Je cherche le # de code produit dans la colonne K selon la plage des cellules V4 et V5
Range("K" & ligne).Value = Application.WorksheetFunction. _
SumIfs(Sheets("base de données").Range("A" & var_debut & ":A" & var_fin), Range("J" & ligne).Value, Sheets("base de données").Range("M" & var_debut & ":M" & var_fin)) / _
Application.WorksheetFunction.CountIf(Sheets("base de données").Range("A" & var_debut & ":A" & var_fin), Range("J" & ligne).Value)
' 'Je cherche le code colonne N selon la ligne des cellules V9 et V10
'si code existe période 2
If Application.WorksheetFunction.CountIf(Sheets("base de données").Range("A" & var_debut1 & ":A" & var_fin1), Range("J" & ligne).Value) = 0 Then
Range("N" & ligne).Value = "-"
Range("O" & ligne).Value = "-"
Else
Range("N" & ligne).Value = Application.WorksheetFunction. _
SumIfs(Sheets("base de données").Range("A" & var_debut1 & ":A" & var_fin1), Range("J" & ligne).Value, Sheets("base de données").Range("M" & var_debut1 & ":M" & var_fin1)) / _
Application.WorksheetFunction.CountIf(Sheets("base de données").Range("A" & var_debut1 & ":A" & var_fin1), Range("J" & ligne).Value)
Range("N" & ligne).Value = Range("K" & ligne).Value - Range("O" & ligne).Value
End If
Next
J'espère que quelqu'un pourra m'aider!
merci
J'ai ce code, mais j'aimerais ajouter deux autres conditions, la première de ne pas additionner dans nb.count si la cellule contient 0 ou que le contenu de la cellule a comme résultat une erreur de division par 0.
Autre chose dans le sumif, il ne doit pas tenir compte des divisions par zero non plus.
'Inscription des variables
Dim var_debut, var_fin, var_debut1, var_fin1, ligne
'pour délimiter ma période connue situé dans les cellules V4 et V5, + V9 et V10 de la feuille TABLEAU DE BORD
' Je vais chercher l'adresse du début et fin de ma première période
var_debut = Replace([V4], "$M$", "")
var_fin = Replace([V5], "$M$", "")
' Je vais chercher l'adresse du début et fin de ma deuxième période
var_debut1 = Replace([V9], "$M$", "")
var_fin1 = Replace([V10], "$M$", "")
'boucle sur codes à comparer
For ligne = 20 To Range("J" & Rows.Count).End(xlUp).Row
'Je cherche le # de code produit dans la colonne K selon la plage des cellules V4 et V5
Range("K" & ligne).Value = Application.WorksheetFunction. _
SumIfs(Sheets("base de données").Range("A" & var_debut & ":A" & var_fin), Range("J" & ligne).Value, Sheets("base de données").Range("M" & var_debut & ":M" & var_fin)) / _
Application.WorksheetFunction.CountIf(Sheets("base de données").Range("A" & var_debut & ":A" & var_fin), Range("J" & ligne).Value)
' 'Je cherche le code colonne N selon la ligne des cellules V9 et V10
'si code existe période 2
If Application.WorksheetFunction.CountIf(Sheets("base de données").Range("A" & var_debut1 & ":A" & var_fin1), Range("J" & ligne).Value) = 0 Then
Range("N" & ligne).Value = "-"
Range("O" & ligne).Value = "-"
Else
Range("N" & ligne).Value = Application.WorksheetFunction. _
SumIfs(Sheets("base de données").Range("A" & var_debut1 & ":A" & var_fin1), Range("J" & ligne).Value, Sheets("base de données").Range("M" & var_debut1 & ":M" & var_fin1)) / _
Application.WorksheetFunction.CountIf(Sheets("base de données").Range("A" & var_debut1 & ":A" & var_fin1), Range("J" & ligne).Value)
Range("N" & ligne).Value = Range("K" & ligne).Value - Range("O" & ligne).Value
End If
Next
J'espère que quelqu'un pourra m'aider!
merci