Variable VBA dans une formule Excel

dadaking -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour

Un textbox te renvoie...du texte.

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

vous avez tenté un TCD ?
0
dadaking Messages postés 4 Statut Membre
 
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 Statut Membre
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
(a<='[Fact_2009.xls]Individuelles'!r3c1:r165c1<=b)*
--

il faut décomposer:
(zone<=b)*(zone>=a)
Cordialement, Michel
0
dadaking Messages postés 4 Statut Membre
 
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 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Merci, Eric,

restons zen cependant: je te laisse le bébé!
0
dadaking Messages postés 4 Statut Membre
 
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 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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