Pb Guillemets dans une formule Indirect en vb

hinanui

XLDnaute Nouveau
Bonjour à tous,

je n'arrive pas résoudre un problème:

Je cherche à faire une formule qui calcule une somme dynamiquement en fonction des filtres qui sont posés. Les lignes contiennent des montant en EUROS en DOLLARS... et je souhaite avoir un sous total par devise des lignes sélectionnées par les filtres. Pour cela j'ai écrit une fonction dans excel qui fonctionne correctement:

=SOMMEPROD(SOUS.TOTAL(9;DECALER($G$1;(LIGNE(INDIRECT("1:5837")));))*($H$2:$H$5838=H5841))

ou la colonne G contient les montants, la colonne H les devises et la cellule H5841 la devise pour laquelle je souhaite faire le sous total.
en vb ca donne ca:

Sheets("SELECT_CLIENT_DO").Cells(derlig_BA_CLT_SELECT_DO + 1, 7).FormulaR1C1 = "=SUMPRODUCT(SUBTOTAL(9,OFFSET(R1C7,(ROW(INDIRECT(""1:5837""))),))*(R2C8:R[" & -1 & "]C[" & 1 & "]=RC[1]))"

Le problème c'est que je n'arrive pas à variabiliser la plage dans la fonction INDIRECT... Je ne m'en sors pas avec les guillemets. J'ai écrit:

Sheets("SELECT_CLIENT_DO").Cells(derlig_BA_CLT_SELECT_DO + 1, 7).FormulaR1C1 = "=SUMPRODUCT(SUBTOTAL(9,OFFSET(R1C7,(ROW(INDIRECT(R[-2]:R[" & (0 - derlig_BA_CLT_SELECT_DO) & "]))),))*(R2C8:R[" & -1 & "]C[" & 1 & "]=RC[1]))"


et là j'obtiens dans la feuille excel:

=SOMMEPROD(SOUS.TOTAL(9;DECALER($G$1;(LIGNE(INDIRECT(1:5837)));))*($H$2:H5838=H5839))

il me manque juste les guillemets mais impossible de les ajouter, je n'y arrive pas...

Merci d'avance pour votre aide!!
 

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote