Sumif avec une plage de données dynamique : syntaxe ?

cs_sayann Messages postés 11 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 9 février 2009 - 2 févr. 2009 à 15:05
cs_sayann Messages postés 11 Date d'inscription lundi 6 mars 2006 Statut Membre Derniè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

2 réponses

cs_sayann Messages postés 11 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 9 février 2009
2 févr. 2009 à 15:09
Mes excuses,
pour que cela soit cohérent il faut remplacer

[penl_r75.xls]Feuil1! par [A.xls]Feuil1!





Cordialement,










Sayann
0
cs_sayann Messages postés 11 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 9 février 2009
9 févr. 2009 à 14:19
Bonjour,
Résolu mon pb en n'utilisant pas le sumif. Merci quand même.





Cordialement,










Sayann



<!--
0
Rejoignez-nous