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
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
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:
- Variable VBA dans une formule Excel
- Formule somme excel colonne - Guide
- Formule excel si et - Guide
- Formule excel moyenne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
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
7 juil. 2009 à 09:18
Bonjour
Un textbox te renvoie...du texte.
Range("C5") = CDate(TextBox1)
renvoie une date dans C5
Un textbox te renvoie...du texte.
Range("C5") = CDate(TextBox1)
renvoie une date dans C5
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
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
Merci pour la suggestion
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
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?
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?
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
7 juil. 2009 à 10:16
(a<='[Fact_2009.xls]Individuelles'!r3c1:r165c1<=b)*
--
il faut décomposer:
(zone<=b)*(zone>=a)
Cordialement, Michel
--
il faut décomposer:
(zone<=b)*(zone>=a)
Cordialement, Michel
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
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))"
"=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))"
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
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
'[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
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
7 juil. 2009 à 11:46
Merci, Eric,
restons zen cependant: je te laisse le bébé!
restons zen cependant: je te laisse le bébé!
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
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))"
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))"
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
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
eric