![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour les forumistes,
encore une petite question sur la somme prod. Je voudrais savoir comment fait -on et si c'est possible pour définir automatiquement la dernière cellule à vérifier. =sommeprod((Mois('Feuil1'!A2:A65500)=Mois('Feuil2' !c2))*('Feuil1'!C2:C65500='Feuil2'!A3)) je voudrais qu'à la place du A65500 et du C65500, une formule qui me détecte systématiquement la dernière cellule, car je ne sais pas à l'avance combien j'aurais de données à calculer. Là avec cette formule ça marche, mais ça rame terrible et en plus je dois le faire sur plusieurs feuilles, donc mon pc ne va pas supporter. merci par avance pour vos solutions et conseils. @+ Phil |
| ANNONCES | |||
|
|
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir à tous,
En VBA tu peux faire comme suit : dim L as long L=sheest(1).[A65536].end(xlup).row ''''''on recupére le N° de la derniere cellule utilisée de la feuille 1 de la colonne A Pour écrire dans la cellule A1 la formule en dur voici 2 exemples , [A1]="=sumproduct((month(Feuil1!A2:A" &L& ")=month(Feuil2!C2))*(Feuil1!C2:C" & L& "=Feuil2!A3))" '''ou [A1].formulalocal="=sommeprod((mois(Feuil1!A2:A" &L& ")=mois(Feuil2!C2))*(Feuil1!C2:C" & L& "=Feuil2!A3))" Bien évidemment grace au VBA on peut faire des boucles pour écrire les formules en dur sur une plage de cellules ou juste mettre le résultat de la formule avec evaluate qui a l'avantage d'éviter des calculs à ralonge à excel dés qu'on change la valeur d'une cellule. [A1]=evaluate("=sumproduct((month(Feuil1!A2:A" &L& ")=month(Feuil2!C2))*(Feuil1!C2:C" & L& "=Feuil2!A3))") A+++ |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|