Variable VBA dans une formule Excel

Fermé
dadaking - 6 juil. 2009 à 12:41
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 7 juil. 2009 à 12:02
Bonjour,
j'ai un tableau qui recense toutes les factures émises depuis le début de l'année quelque soit leur devise d'émission (USD, EUR, JPY ...). Je veux créer des borderaux récapitulatifs par devise pour une période donnée (il ramène, par exemple la somme globale des facture en JPY pour la période du 01 mars au 15 mai). J'ai voulu passer par la formule "SUMPRODUCT" (sommeprod sous excel) mais je n'arrive pas lui faire reconnaitre les 2 dates (début et fin de période) que l'on rentre via un Userform (2 champs : txtDateDebut et txtDateFin). Si je ne maets pas de conditions de dates, ça marche très bien..

ma question est donc : comment faire pour qu'il me calcule la somme des factures pour une période donnée?

D'avance merci
A voir également:

10 réponses

michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
7 juil. 2009 à 09:18
Bonjour

Un textbox te renvoie...du texte.

Range("C5") = CDate(TextBox1)
renvoie une date dans C5
1
Bonjour,

vous avez tenté un TCD ?
0
dadaking Messages postés 4 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 09:17
j'y avais pensé mais ce n'est pas la solution : il faut que le résultat apparaisse dans différents tableaux...

Merci pour la suggestion
0
dadaking Messages postés 4 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 09:40
j'ai mis :
a = cdate(txtDateDebut)
b = cdate(txtDateFin)


"=SUMPRODUCT(('[Fact_2009.xls]Individuelles'!R3C8:R165C8=""MUR"")*(a<='[Fact_2009.xls]Individuelles'!r3c1:r165c1<=b)*('[Fact_2009.xls]Individuelles'!R3C12:R165C12))"

les variables a et b sont des dates mais, apparemment, la formule SUMPRODUCT ne les reconnait pas. Saurais-tu pourquoi?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
7 juil. 2009 à 10:16
(a<='[Fact_2009.xls]Individuelles'!r3c1:r165c1<=b)*
--

il faut décomposer:
(zone<=b)*(zone>=a)
Cordialement, Michel
0
dadaking Messages postés 4 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 10:32
je l'ai fait mais ça ne marche pas mieux : j'ai toujours "#NOM?" dans la cellule de destination.

"=SUMPRODUCT(('[Fact_2009.xls]Individuelles'!R3C8:R165C8=""MUR"")*('[Fact_2009.xls]Individuelles'!r3c1:r165c1<=b)*('[Fact_2009.xls]Garanties'!r3c1:r165c1>=a)*('[Fact_2009.xls]Individuelles'!R3C12:R165C12))"
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 256
7 juil. 2009 à 10:57
Bonjour,

'[Fact_2009.xls]Individuelles'!r3c1:r165c1<=b

Excel ne connait pas a et b.
Michel t'avais dit de les mettre dans des cellules Range("C5") = CDate(TextBox1)

eric
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
7 juil. 2009 à 11:46
Merci, Eric,

restons zen cependant: je te laisse le bébé!
0
dadaking Messages postés 4 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 11:58
il me ramène bien les dates dans les cellules de destination mais la formule ne fait toujours rien...

range("f5")=cdate(txtDateDebut)
range("g5")=date(txtDateFin)


"=SUMPRODUCT(('[Fact_2009.xls]Individuelles'!R3C8:R165C8=""MUR"")*('[Fact_2009.xls]Individuelles'!r3c1:r165c1<=range("g5"))*('[Fact_2009.xls]Garanties'!r3c1:r165c1>=("f5"))*('[Fact_2009.xls]Individuelles'!R3C12:R165C12))"
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 256
7 juil. 2009 à 12:02
Le mieux est que tu déposes ton fichier (sans données confidentielles) sur cijoint.fr et que tu colles le lien ici.
eric
0