Copier la somme sur une autre feuille

hazein

XLDnaute Nouveau
Bonjour, je suis nouveau sur ce forum et j'aurais besoin de votre aide, je vous explique le contexte:
j'essai de faire une macro pour faire une somme de chaque élément et de copier les résultats sur une plage de cellules se situant sur une autre feuille.
Je vous prend un exemple (voir fichier excel)
sur la feuille 1, on a deux catégories qui sont légumes et fruits. Et je veux faire la somme de tous les types A (par exemple) appartenant à la catégorie légume et de copier le résultat obtenu sur la feuille 2 (dans C10)

Je cherche à faire macro qui s'applique dans tous les cas, c'est à dire pour n'importe quelle catégorie et type.

Vous trouverez en pièce jointe le fichier excel.
Je tiens à vous préciser que je débute en VBA.

Merci d'avance
 

Pièces jointes

  • fruits&legumes.xlsx
    9.4 KB · Affichages: 63

ralph45

XLDnaute Impliqué
Re : Copier la somme sur une autre feuille

Et bien, le meilleur moyen d'y arriver :

1° tu lances l'enregistreur de macro ;
2° tu reproduis la formule de mon post#2 ;
3° tu arrêtes l'enregistreur de macro ;
4° Alt+F11, pour voir le code généré et éventuellement le bidouiller...

A+
 

hazein

XLDnaute Nouveau
Re : Copier la somme sur une autre feuille

est ce que tu pourrais m'expliquer comment je pourrais créer les deux tableaux qui sont sur la feuille 2 automatiquement en fonction des valeurs de la feuille 1 et du nombre de catégorie ?
Merci d'avance
 

ralph45

XLDnaute Impliqué
Re : Copier la somme sur une autre feuille

Re,

Je ne vais pas te donner la solution avec un joli ruban noué, mais ce que tu demandes, tu le trouveras facilement avec les options de filtres élaborés :
- dans l'aide Excel (touche F1)
- sur ce forum, bouton "Rechercher dans ce forum".

A+
 

hazein

XLDnaute Nouveau
Re : Copier la somme sur une autre feuille

je reviens vers toi parce que j'ai un problème avec ta formule
=SOMMEPROD(('feuille1'!$I:$I='feuille2'!$B$2)*('feuille1'!$L:$L='feuille2'!$C$2)*('feuille1'!$O2:$O65000))
il m'affiche #N/A
que dois je faire ?
 

ralph45

XLDnaute Impliqué
Re : Copier la somme sur une autre feuille

Re,

La fonction SOMMMEPROD ne fonctionne que lorsque les matrices ont des références de même grandeur :
=SOMMEPROD(('feuille1'!$I:$I='feuille2'!$B$2)*('feuille1'!$L:$L='feuille2'!$C$2)*('feuille1'!$O2:$O65000))
ne peut être bon, il faudrait qu'elles fassent toutes référence de la ligne 2 à la ligne 65000 ou alors aux colonnes entières...

EDIT : Attention, de base les noms des onglets d'EXCEl se nomment Feuil1, etc et non Feuille1, etc...

A+
 
Dernière édition:

ralph45

XLDnaute Impliqué
Re : Copier la somme sur une autre feuille

merci pour ta réponse, j'ai appliqué ce que tu m'as dit
et j'obtiens ceci #Valeur:
=SOMMEPROD(('feuil1'!$I:$I='feuil2'!$B$2)*('feuil1'!$L:$L='feuil2'!$C$2)*('feuil1'!$O:$O))

Non hazein, regarde attentivement ma 1ère formule et compare-la avec la tienne (hormis le nombre de lignes à prendre en compte)
=SOMMEPROD((Feuil1!$A$2:$A$14=Feuil2!A2)*(Feuil1!$ B$2:$B$14=Feuil2!B2)*(Feuil1!$C$2:$C$14))
1° pourquoi as-tu,mis des ' autour des noms des onglets ?
2° de plus je crois qu'Excel2003 ne gère pas les colonnes entières. Essaye avec un champ vaste mais délimité (Ligne 2 à 650000).

A+
 

hazein

XLDnaute Nouveau
Re : Copier la somme sur une autre feuille

Bonjour,
mais c'est un tableau de taille variable donc dans ma formule je ne pourrais pas définir la taille exacte de la colonne.
Est ce qu'il existe une autre formule ? ou comment dois-je faire avec cette formule?
 

ralph45

XLDnaute Impliqué
Re : Copier la somme sur une autre feuille

Bonjour hazein,

Persistons :p : copie cette formule :
=SOMMEPROD((Feuil1!$A$2:$A$65000=Feuil2!A2)*(Feuil1!$B$2:$B$65000=Feuil2!B2)*(Feuil1!$C$2:$C$65000))
... et en lieu et place de 65000, mets une autre valeur (exemple 1000000)

Tu as bien une idée de grandeur mini-maxi de ton tableau ?

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 249
Messages
2 086 604
Membres
103 260
dernier inscrit
NHOURRA