Stat et affichage depuis une liste autorisée

Bonjour à tous,

Voilà: j'ai une liste de produits que je souhaite classer et sommer par catégorie en fonction du calibre.

Dans mon onglet LISTE j'ai tous mes produits ainsi que les quantité pour chacun.

dans mon onglet INVENTAIRE je souhaite afficher une ligne par type de produits et en face la somme des quantités par catégorie quelle que soit la provenance.

Ex: les 2 lignes bananes deviendraient :

.................categorie 1 ........categorie 2 ..........catégorie 3

bananes :..........20 ....................12 ......................3

ainsi de suite pour les autres produits figurant dans la liste PRODUITS AUTORISES.

Je vous remercie par avance pour votre aide. Si vous avez la solution je serai ravi de pouvoir la tester si possible en début d'après midi pour une tache a effectuer avant la fin de journée. Merci 1000 fois pour votre comprehension et votre aide.

kpa

Bonjour,

Vois fichier

Amicalement

Claude

édit: c'est mieux en nommant les champs dynamiquement

Merci pour votre reactivite et votre aide solution.

Je teste le fichier tout de suite.

Merci. Je vous fais un retour.

Kpa

-- 16 Fév 2011, 10:25 --

Re bonjour,

Les resultats sont ok.

Mais ils supposent que la liste est faite a la main

Cependant, pour suivre votre idee d'afficher les informations de facon dynamique, comment pourrait on effectuer le tri et l'affichage suivant le même principe mais en utilisant un bouton

et en suivant un modèle pour l'affichage.

Merci.

Kpa

re,

Sub Filtre()
Dim Lg%
'Macro par Claude Dubois pour "kpa" Excel-Pratique le 13/02/11
    Application.ScreenUpdating = False
    Lg = Range("c65536").End(xlUp).Row
    '--- tri ---
    Range("b5:f" & Lg).Sort Key1:=Range("c5"), Order1:=xlAscending, _
    Header:=xlNo, OrderCustom:=1, MatchCase:=False
    '--- filtre ---
    With Sheets("inventaire")
        .Range("c5:e100").ClearContents
        Range("c4:c" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("k1:k2"), CopyToRange:=.Range("b3"), Unique:=True
        Lg = .Range("b65536").End(xlUp).Row
        .Range("c4:e4").AutoFill Destination:=.Range("c4:e" & Lg), Type:=xlFillDefault
        .Activate
    End With
End Sub

Amicalement

Claude

Merci. C'est excellent!

Par contre dans la formule : SOMMEPROD, comment redefinissez vous Cat1 (Catn) et produits=

Je ne vois pas trop comment vous passez de categorie1 a cat1, ainsi que la référence a produit , desole.

Merci pour vos explications.

Kpa

bonjour

Merci de respecter les régles de ce forum --> https://forum.excel-pratique.com/excel/explications-et-regles-a-respecter-t13.html

3.choisissez un titre suffisamment explicite pour votre nouveau sujet (évitez les titres trop vagues tels que "besoin d'aide c'est URGENT" ou encore "j'ai un problème"), le titre ne doit pas être écrit tout en majuscules et ne dois pas contenir le nom d'un autre membre

Pourrais-tu éditer le titre de ton sujet.

Merci de ta participation.

Bonjour,

Ok. Desole. Je vais reediter le titre.

Cdt,

Kpa

-- 16 Fév 2011, 13:07 --

Re,

Comment puis faire pour reediter le titre du sujet déjà en cours svp?

Nouveau sujet: tri, affichage et calcul suivant une liste critere.

Cdt,

Kpa

re,

Comment puis faire pour reediter le titre du sujet déjà en cours svp?

Tu reprends le premier sujet de ton fil et tu cliques sur le bouton EDITER comme tu viens de le faire dans ton message. Cela te donne accès au titre du sujet.

Amicalement

re,

en tenant compte des autorisés

Sub Filtre()
Dim Lg%
'Macro par Claude Dubois pour "kpa" Excel-Pratique le 13/02/11
    Application.ScreenUpdating = False
    Lg = Range("c65536").End(xlUp).Row
    '--- tri ---
    Range("b5:g" & Lg).Sort Key1:=Range("c5"), Order1:=xlAscending, _
    Header:=xlNo, OrderCustom:=1, MatchCase:=False
    '--- filtre ---
        Range("k2") = "=g5=1"   'critère
    With Sheets("inventaire")
        .Range("c5:e100").ClearContents
        Range("c4:g" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("k1:k2"), CopyToRange:=.Range("b3"), Unique:=True
        Range("k2").ClearContents
        Lg = .Range("b65536").End(xlUp).Row
        .Range("c4") = "=SUMPRODUCT((Cat1)*(produits=b4))"
        .Range("d4") = "=SUMPRODUCT((Cat2)*(produits=b4))"
        .Range("e4") = "=SUMPRODUCT((Cat3)*(produits=b4))"
        .Range("c4:e4").AutoFill Destination:=.Range("c4:e" & Lg), Type:=xlFillDefault
        .Activate
    End With
End Sub

Vois les noms définis

Amicalement

Claude

Bonjour,

C'était bien la peine de dire "Urgent", si pas de suite !

a resolu3

Bonjour, Desole pour le delai de retour.

J'etais en deplacement sans acces au forum. J'ai tente de modifer donc comme je le pouvais la version precedente.

PS: ce n'est que maintenant que je peux modifier le titre comme indique par le moderateur.

Merci pour votre aide.

-- 22 Fév 2011, 11:09 --

Bonjour la macro marche parfaitement.

Cependant,J essaie de comprendre comment ont ete concues les formules et la macro, pouvez vous m eclairer si vous avez un peu de temps SVP. Je vous remercieparavance:

1) =SOMMEPROD((Cat1)*(produits=B5)) : comment definissez vous "Cat1" par rapport au fichier liste?

2) =NB.SI(Autorisés;liste!C5) : comment definissez vous "Autorisés" par rapport au fichier liste

3) Dans le code, a quoi sert la ligne critere: Range("k2") = "=g5=1" 'critère ?

4) 'autorisés : le caractere (') devant le mot "autorises" a t il un sens particulier?

Merci.

Cdt,

Kpa

Rechercher des sujets similaires à "stat affichage liste autorisee"