Sumif avec une plage de données dynamique : syntaxe ?
cs_sayann
Messages postés11Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 9 février 2009
-
2 févr. 2009 à 15:05
cs_sayann
Messages postés11Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 9 février 2009
-
9 févr. 2009 à 14:19
Bonjour,
J'essaie de faire un sumif dans une macro excel qui va faire la somme des données (en fonction d'un critère fixe) d'un fichier A et mettre le résultat dans un fichier B.
Le problème, c'est que le nombre de lignes du fichier A est appelé à varier.
Voici mon code (je suis dans B.xls):
Sub calcul_penl()
'
Workbooks.Open Filename:="D:\A.xls"
Sheets("Feuil1").Select
Dim num_der_ligne As String
Range("G1").Select
' le numéro de la dernière ligne
num_der_ligne = CStr(ActiveCell.End(xlDown).Row)
Dim plage1 As String
' ma plage de données "critere"
plage1 = "[penl_r75.xls]Feuil1!R2L5:R" & num_der_ligne & "L5"
Dim plage2 As String
' ma plage de données dans laquelle sommer
plage2 = "[penl_r75.xls]Feuil1!R2L7:R" & num_der_ligne & "L7"
' juste pour verifier
' MsgBox (plage1)
Windows("B.XLS").Activate
Range("G9").Select
' la syntaxe suivante ne fonctionne pas
'ActiveCell.FormulaR1C1 = _
"=SUMIF(""[penl_r75.xls]Feuil1!R2L5:R"" & num_der_ligne & ""L5"",""VOS"",""[penl_r75.xls]Feuil1!R2L7:R"" & num_der_ligne & ""L7"")"
'Celle-ci non plus car les variables ne sont pas interprétées, j'ignore pourquoi
ActiveCell.FormulaR1C1 = _
"=SUMIF(plage1,""VOS"",plage2)"
Range("G10").Select
End Sub
Quelqu'un peut-il me dire comment écrire la formule correctement ?
RQ: je préfère utiliser des références absolue, mais si une solution avec des références relatives fonctionne je suis preneuse aussi.
Merci pour toute aide.
Cordialement,
Sayann
A voir également:
Sumif avec une plage de données dynamique : syntaxe ?