sommeprod

P

Phil

Guest
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
 
Z

ZON

Guest
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+++
 

Discussions similaires

Réponses
35
Affichages
2 K

Statistiques des forums

Discussions
314 662
Messages
2 111 640
Membres
111 242
dernier inscrit
Oyam