Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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!!
 

hinanui

XLDnaute Nouveau
Re : Pb Guillemets dans une formule Indirect en vb

Merci pour votre aide, ca fonctionne très bien!! J'ai essayé pleins de combinaisons mais pas celle là ;-) !!

J'ai galéré plusieurs heures sur cette formule... encore merci!!
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…