chris6999
XLDnaute Impliqué
Bonjour le FORUM
J'ai essayé tant bien que mal de remplacer mes formules sommes PROD par une fonction matricielle et cela fonctionne plutôt bien.
Le but est d'appliquer la fonction sur toutes les lignes où la colonne A est non vide et ce jusqu'à la ligne 181.
Sub sommeprod()
Dim lig&
'partir de la ligne 10 si colonne A no vide
lig = Cells(10, "A").End(xlDown).Row
'applique le code à partir de la ligne 10 colonne D et répète 8 fois
With Range(Cells(10, "D"), Cells(lig, "D")).Resize(, 8)
'formule
.FormulaR1C1 = _
"=SUMPRODUCT('Données brutes agents'!R9C5:R40000C5*(RC1='Données brutes agents'!R9C8:R40000C8)*(R3C='Données brutes agents'!R9C2:R40000C2))"
'remplace formule par la valeur trouvée
'.Value = .Value
End With
End Sub
Mon problème:
Je souhaiterais que seules les lignes où B est non vide soit traitées.
J'aurais pu faire lig = Cells(10, "B").End(xlDown).Row mais voilà le code s'arrête dès qu'il trouve justement une ligne où la colonne B est vide.
Quequ'un saurait il comment résoudre ce problème
Merci d'avance
J'ai essayé tant bien que mal de remplacer mes formules sommes PROD par une fonction matricielle et cela fonctionne plutôt bien.
Le but est d'appliquer la fonction sur toutes les lignes où la colonne A est non vide et ce jusqu'à la ligne 181.
Sub sommeprod()
Dim lig&
'partir de la ligne 10 si colonne A no vide
lig = Cells(10, "A").End(xlDown).Row
'applique le code à partir de la ligne 10 colonne D et répète 8 fois
With Range(Cells(10, "D"), Cells(lig, "D")).Resize(, 8)
'formule
.FormulaR1C1 = _
"=SUMPRODUCT('Données brutes agents'!R9C5:R40000C5*(RC1='Données brutes agents'!R9C8:R40000C8)*(R3C='Données brutes agents'!R9C2:R40000C2))"
'remplace formule par la valeur trouvée
'.Value = .Value
End With
End Sub
Mon problème:
Je souhaiterais que seules les lignes où B est non vide soit traitées.
J'aurais pu faire lig = Cells(10, "B").End(xlDown).Row mais voilà le code s'arrête dès qu'il trouve justement une ligne où la colonne B est vide.
Quequ'un saurait il comment résoudre ce problème
Merci d'avance