XL 2010 [VBA] Somme selon couleur et plage de cellule

Horusbk

XLDnaute Junior
Bonjour,

Je bloque sur la programmation de ce fichier donc je me tourne vers vous :)

J'ai un fichier qui récapitule les ventes (par jour: du 09/12/2018 au 14/12/2019) de différents produits : Paris-Brest, Eclair au chocolat, religieuse café ...
Ce que je souhaiterais, c'est faire la somme des ventes par produits. Toutefois il y a trois problématiques à prendre en compte :
- des produits pourraient être ajouté tout au long de la période.
- la liste des produits (colonne F = VENTE), n'est pas triées par produits (c'est volontaire).
- on additionne uniquement les valeurs qui sont dans la partie "Date" (en-tête en vert).

170317102206165048.png


Il me semble qu'on peut utiliser les nombres qui correspondent aux couleurs dans des formules excel.
Du coup, il faudrait une formule du type : pour la couleur bleu (nombre = ??) faire la somme des chiffres de toute la ligne du 09/12/18 au 14/12/18. Ainsi de suite pour les autres couleurs.

Les totaux pour les différents produits se situent dans le tableau de la feuille 2.

De plus, comme des produits pourront être ajouté, il faudrait que la formule ou le VBA prenne en compte une nouvelle couleur (par exemple depuis un tableau récapitulatif dans une autre feuille).

En vous remerciant pour votre aide, je reste à dispo.
Baptiste K.

PS: les données sont fictives pour des raisons professionnelles.
 

Pièces jointes

  • TestBK_sommeCondition.xlsx
    1.8 MB · Affichages: 57

chris

XLDnaute Barbatruc
Bonjour

Une solution en pièce jointe.
Je ne vois pas l'intérêt de VBA ici...
Mieux vaut raisonner par produit que par couleur...
Pour tout nouveau produit ajouter le produit au tableau et recopier les formules

A noter qu'une structure différente, à savoir liste de données, serait plus efficace :
Produit, Date, Quantité.
 

Pièces jointes

  • TestBK_sommeCondition_XLD.xlsx
    1.8 MB · Affichages: 60

CISCO

XLDnaute Barbatruc
Bonjour

Cf. en pièce jointe.

On peut utiliser une plage dynamique pour la colonne VENTES pour que tu puisses y rajouter des produits sans que cela pose problème. Cf. dans le gestionnaire de noms le nom VENTES et sa définition. Cela ne fonctionnera correctement que si tu n'a pas de cellule vide dans cette colonne, placée entre deux produits.

J'ai changé le contenu de la plage D5 : P5.

Autrement, Cf. la formule dans D6. J'y ai aussi mis un test par rapport à l'année, puisque ton tableau contient deux mois de décembre. J'ai mis 371 car le tableau de la feuille 1 contient 371 colonnes (de H à NN). Là aussi, on pourrait faire avec une plage dynamique dont la longueur s'adapterait au nombre de colonnes de ton tableau. Si cela te dit.

Il ni a pas besoin, il me semble, de prendre en considération les couleurs de remplissage des cellules.

@ plus

P.S : Salut Chris :). Pas besoin de VBA non plus, je pense... Je n'ai pas pensé à corriger "l'orthographe" dans la plage Feuil2!C6:C10.
 

Pièces jointes

  • TestBK_sommeCondition.xlsx
    1.8 MB · Affichages: 66
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Une variante avec une plage dynamique prenant automatiquement en compte le nombre de colonnes (de dates) de ton tableau sur la feuille 1.

@ plus
 

Pièces jointes

  • TestBK_sommeCondition bis.xlsx
    1.8 MB · Affichages: 72

Horusbk

XLDnaute Junior
Bonjour à tous,
Merci de vos réponses.

Vos propositions répondent à mes attentes cependant, je voudrais vous poser une suggestion, qui serait à mon sens, plus lisible pour mes collègues. En effet, ces derniers préféreraient pas jour et non plus par mois.

Du coup, je partirais du principe suivant (regardez les cellule coloriées en rouge) :
Cellule 1 : liste déroulante pour choisir la ligne de production (sans doublon de ligne de production)
Cellule 2 : liste déroulante pour choisir le produit (sans doublon dans les noms de produits)

Au dessus de chaque date, on aura la somme des ventes pour un produit donné (cellule 2 = F2) et pour une ligne de production donnée (cellule 1 = E2).
J'attire votre attention qu'il peut y avoir plusieurs produits qui ont une ligne de production identique, comme vous pouvez le voir sur les deux premières lignes de "Paris-Brest". Alors, le 16/12/18, la somme donnera 10 en O2.

Je reste à disposition et vous remercie.
Baptiste K.
 

Pièces jointes

  • TestBK_listechoix.xlsx
    1.7 MB · Affichages: 80

Discussions similaires

Réponses
9
Affichages
155