Sommes multi-conditionnelle - VB/VBA/VBS - Programmation
Marsh Posté le 22-10-2008 à 08:35:27
En faite le principe serait bon, la formule comporterais juste une erreure et planterais le code, mais je ne voit pas d'ou ca peux venir.
Code :
|
Marsh Posté le 22-10-2008 à 10:03:08
Bonjour,
Range("j5" ).Select
formi = "=SUMPRODUCT(((e1:e5)= ""A1"" )*((i1:i5)=""A"" ))"
ActiveCell.Formula = formi
Range("j6" ).Select
formi = "=SUMPRODUCT(((e1:e5)= ""A1"" )*((i1:i5)=""A"" )* (b1:b5))"
ActiveCell.Formula = formi
Marsh Posté le 27-10-2008 à 14:12:37
Merci, cela marche très bien, cependant j'ai une petite question,
Je désir, dans un autre tableau reprendre cette formule et rajouter une argument qui sélectionnerais uniquement la valeurs correspondant au mois de janvier de l'année en cours.
je pensais a :
Code :
|
Mais aucun résultat, aurais-tu une idée ?
Marsh Posté le 28-10-2008 à 11:17:41
En faite, je souhaite afficher la mois suivant par rapport a la cellule qui est a gauche.
Pour cela j'ai trouver la fonction "mois.decaler" mais elle ne semble pas marcher dans les macro.
Pour ensuite utiliser la date de cette cellule dans ma formule pour le dateval.
Voila un petit exemple :
+---------------------------+
| Janvier 2008 | Fevrier 2008 |
|----------------------------|
| Valeur A | Valeur B |
+----------------------------+
La valeur A est :
Code :
|
Idem pour la valeur B mais pour fevrier 2008.
Marsh Posté le 28-10-2008 à 18:34:39
Bonsoir,
je n'ai pas tout compris, mais voici une formule qui permet de générer tes dates.
=DATE(ANNEE(A1);MOIS(A1)+1;JOUR(A1))
A mettre en B1 puis étendre, le format des cellules de la ligne 1 devant être un format date personnalisé: mmmm aaaa
ton somme....devient:
=SOMMEPROD((('Accidents 2004'!$A$4:$A$500)=A1 )*(('Accidents 2004'!$E$4:$E$500)= "Escale" )*(('Accidents 2004'!$I$4:$I$500)="TO" ))
Marsh Posté le 30-10-2008 à 14:12:33
seniorpapou a écrit : |
Cette formule me renvoi un "#nom?" je ne comprend pas.
Alors que si je rentre la formule moi même (au lieu de le faire en macro) elle marche.
En revanche, quand on met =A1 ca veut dire la même date que en A1, or il me faudrait seulement le même mois et la même année, dois-je utiliser une double égalité ? (> et < ) ou y a t-il une aiutre astuce plus simple ?
Marsh Posté le 30-10-2008 à 17:54:00
=SOMMEPROD((format(('Accidents 2004'!$A$4:$A$500);"mmmm aaaa" )=format(A1;"mmmm aaaa" ) )*(('Accidents 2004'!$E$4:$E$500)= "Escale" )*(('Accidents 2004'!$I$4:$I$500)="TO" ))
sans garantie pace pas testé
Marsh Posté le 31-10-2008 à 08:40:43
Ne semble pas marcher, renvoie un "#nom?", decidement je comprend vraiment pas
Je vais me pencher sur cette formule, qui me semble idéale pour mon problème, il doit forcement y avoir une solution.
Marsh Posté le 31-10-2008 à 09:07:24
bonjour,
peux-tu mettre un "échantillon" de ton xls sur cjoint.com, ce qui me permettra de tester dans des conditions proches de la réalité?
Merci
désolé, format n'est pas possible
=SOMMEPROD((ANNEE(($A$4:$A$500) )=ANNEE(A1 ) )*(MOIS(($A$4:$A$500) )=MOIS(A1 ) )*(($E$4:$E$500)= "Escale" )*(($I$4:$I$500)="TO" ))
tu ajoutes la référence à ta feuille que j'ai supprimée pour tester
Marsh Posté le 31-10-2008 à 11:13:27
Ta formule renvoi a nouveau un "#nom?" mais si je tape entrer sous excel, elle est revalidé et cette fois elle marche.
Y-aurait-il un problème de "comprehension" entre ma macro et excel ?
Je ne peux malheuresement pas fournir l'echantillion a cause des restriction reseaux, en revanche, voici un extrait de ma macro :
Code :
|
Edit : J'ai trouver, en faite il me faut mettre toute mes fonctions en anglais (Mois=>Month etc ...)
Mais je ne comprend pas pourquoi en francais cela ne marche pas dans ma macro.
Marsh Posté le 31-10-2008 à 13:11:50
les mystères de l'informatique......
l'essentiel étant de ne pas l'oublier
@+
Marsh Posté le 20-10-2008 à 09:41:16
Bonjour,
Je suis en première anné de BTS informatique, n'ayant jamais fait de VBA et mon entreprise m'en ayant donner a faire, je reste un peu coincé sur quelque point.
Mon classeur se compose de plusieurs feuille, seul 2 m'intéresse pour le calcul de la formule sur laquelle je bloque.
La première feuille un un simple tableau avec 3 colonnes qui m'intéresse, la deuxième feuille doit reprendre ce tableau et en faire un bilan afin de l'analyser.
Voici mon tableau :
_____________________________
| Activité | Valeurs | type |
|---------------------------------|
| A1 | 20 | A |
| A1 | 10 | B |
| A1 | 2 | C |
| A2 | 0 | D |
| A1 | 50 | A |
|___________|________|_______|
Je souhaite calculer le nombre de "Type" qui sont egal a A pour "l'activité" A1(sachant que celle-ci n'est pas toujours A1)
Je souhaite aussi additionner les "Valeurs" correspondant a chaque Type qui ont A1 pour activité (adition des "Valeurs" du nombre trouver précédament)
Ce qui donne par exemple pour l'activité A1 :
Il y a 2 Type A pour cette activité et 70valeurs de type A(50+20)
Voici la formule que j'avais entrer, j'ai surement fait une erreur d'ecriture, mais je ne voit pas laquel.
Merci d'avance
Message édité par darknewbie31 le 22-10-2008 à 08:41:37