AFFICHER TOP 10 FOURNISSEUR EXCEL
Fermé
Yellow41
Messages postés
4
Date d'inscription
samedi 7 août 2010
Statut
Membre
Dernière intervention
5 décembre 2021
-
7 août 2010 à 13:35
frippons Messages postés 550 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 18 octobre 2015 - 9 août 2010 à 00:24
frippons Messages postés 550 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 18 octobre 2015 - 9 août 2010 à 00:24
A voir également:
- AFFICHER TOP 10 FOURNISSEUR EXCEL
- Liste déroulante excel - Guide
- Clé windows 10 gratuit - Guide
- Si et excel - Guide
- Windows 10 gratuit - Accueil - Mise à jour
- Winrar 64 bits windows 10 - Télécharger - Compression & Décompression
4 réponses
Raymond PENTIER
Messages postés
58721
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 novembre 2024
17 236
7 août 2010 à 15:07
7 août 2010 à 15:07
Bonjour.
Pourquoi une macro ? Il suffit d'utiliser :
soit la fonctionnalité Filtre en réalisant des filtres successifs,
soit l'assistant Sous-total après avoir fait les tris pertinents.
Pourquoi une macro ? Il suffit d'utiliser :
soit la fonctionnalité Filtre en réalisant des filtres successifs,
soit l'assistant Sous-total après avoir fait les tris pertinents.
Beeloobop
Messages postés
63
Date d'inscription
jeudi 11 février 2010
Statut
Membre
Dernière intervention
4 décembre 2010
11
Modifié par Beeloobop le 7/08/2010 à 15:24
Modifié par Beeloobop le 7/08/2010 à 15:24
Bonjour,
Une macro qui utilise des filtres automatiques pourrait surement faire l'affaire. Désolée mais je ne vais pouvoir te donner que des bouts de codes, en éspérant que ça te suffise ou que quelq'un de plus expérimenté et patient que moi te donne un code complet. :)
Dans ta macro:
Tu crées des filtres sur tes colonnes :
With ActiveSheet
If Not .AutoFilterMode Then .Range("A1").AutoFilter
End With
Dans une boucle qui va te sélectionner tes sites un à un (une boucle for?)
tu lui dis de filtrer ta colonne site sur le premier site (variable!du genre i)
Selection.AutoFilter Field:=1, Criteria1:="premier site", Operator:=xlAnd
tu lui dis de filtrer sur ta colonne prix total les 10 1er
ActiveSheet.Range("$A$1:$D$40000").AutoFilter Field:=2, Criteria1:="10", _
Operator:=xlTop10Items
Tu crées une variable Lg qui est la valeur du nombre de lignes visibles, résultantes des filtres automatiques et sélectionne la plage de cellules visibles issues de ces filtres automatiques copie les valeurs (uniquement) de la sélection et les colle en G10 (par exemple)
Dim Lg%
Lg = Range("A1").End(xlDown).Row
Range("a1:d" & Lg).Copy
Range("g10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Tu remets à zéro les filtres automatiques
ActiveSheet.Range("$A$1:$C$481").AutoFilter Field:=1
ActiveSheet.Range("$A$1:$C$481").AutoFilter Field:=2
ActiveSheet.Range("$A$1:$C$481").AutoFilter Field:=3
ActiveSheet.Range("$A$1:$C$481").AutoFilter Field:=4
Et puis bah tu finis
End sub
ça doit pouvoir marcher si tu mets ta boucle for bien en place comme il faut! Au final j'ai presque donné un code complet. :) A toi de chercher pour le reste! Je suis preneuse si tu trouves, je vais continuer à chercher de mon côté!
Bonne chance!
Beeloobop
Une macro qui utilise des filtres automatiques pourrait surement faire l'affaire. Désolée mais je ne vais pouvoir te donner que des bouts de codes, en éspérant que ça te suffise ou que quelq'un de plus expérimenté et patient que moi te donne un code complet. :)
Dans ta macro:
Tu crées des filtres sur tes colonnes :
With ActiveSheet
If Not .AutoFilterMode Then .Range("A1").AutoFilter
End With
Dans une boucle qui va te sélectionner tes sites un à un (une boucle for?)
tu lui dis de filtrer ta colonne site sur le premier site (variable!du genre i)
Selection.AutoFilter Field:=1, Criteria1:="premier site", Operator:=xlAnd
tu lui dis de filtrer sur ta colonne prix total les 10 1er
ActiveSheet.Range("$A$1:$D$40000").AutoFilter Field:=2, Criteria1:="10", _
Operator:=xlTop10Items
Tu crées une variable Lg qui est la valeur du nombre de lignes visibles, résultantes des filtres automatiques et sélectionne la plage de cellules visibles issues de ces filtres automatiques copie les valeurs (uniquement) de la sélection et les colle en G10 (par exemple)
Dim Lg%
Lg = Range("A1").End(xlDown).Row
Range("a1:d" & Lg).Copy
Range("g10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Tu remets à zéro les filtres automatiques
ActiveSheet.Range("$A$1:$C$481").AutoFilter Field:=1
ActiveSheet.Range("$A$1:$C$481").AutoFilter Field:=2
ActiveSheet.Range("$A$1:$C$481").AutoFilter Field:=3
ActiveSheet.Range("$A$1:$C$481").AutoFilter Field:=4
Et puis bah tu finis
End sub
ça doit pouvoir marcher si tu mets ta boucle for bien en place comme il faut! Au final j'ai presque donné un code complet. :) A toi de chercher pour le reste! Je suis preneuse si tu trouves, je vais continuer à chercher de mon côté!
Bonne chance!
Beeloobop
Bonjour,
Merci pour ton aide. Je regarde ce que je peux faire mais je suis vraiment nul pour les macros
Merci pour ton aide. Je regarde ce que je peux faire mais je suis vraiment nul pour les macros
frippons
Messages postés
550
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
18 octobre 2015
100
9 août 2010 à 00:24
9 août 2010 à 00:24
Bonjour,
Une macro dynamique de tri dans une autre page serait nettement plus efficace. Aussi non tu as des fonctions recherches et somme.si qui une fois combiné pourrait répondre à ta demande.
Mais pour traiter autant de données, la base de donnée seraient vraiment une bien meilleur idée.
Une macro dynamique de tri dans une autre page serait nettement plus efficace. Aussi non tu as des fonctions recherches et somme.si qui une fois combiné pourrait répondre à ta demande.
Mais pour traiter autant de données, la base de donnée seraient vraiment une bien meilleur idée.
Modifié par Raymond PENTIER le 7/08/2010 à 15:38
* lignes 8 et 10 > sous-famille non indiquée
* lignes 13 et 25 > famille non indiquée
* ligne 15 > ni famille, ni sous-famille
dans les résultats souhaités :
* Fournisseur 723, la famille n'est pas indiquée
* Fournisseur 726, il faut répéter cette donnée au début des 2 lignes suivantes
* Fournisseur 544, à répéter ligne suivante
Cela explique aussi que ton TCD ne donne pas de résultat convaincant !