Compteur dans excel

essor

XLDnaute Nouveau
Bonjour à tous
J'ai une liste de référence d'article (C1025, C1059, etc) d'environ 800 valeurs et j'aimerai avoir un récapitulatif du nombre de fois ou l'article apparait.
Ex:
feuille excel
C1025
C1025
C1025
C1029
C1029
C1029
C1029
C1069

et je veux en récapitulatif
C1025:3
C1029:4
C1069:1

Merci d'avance
 

sigismond

XLDnaute Occasionnel
Re : Compteur dans excel

Bonjour,

Il y a deux étapes pour répondre à ta question :

1° Créer un tableau récapitulant les fournisseurs sans doublon

2° remplir ce tableau avec les nombres d'occurences.

Pour la 1° étape je suggère d'utiliser un filtre élaboré :

menu/Données/Filtrer/Filtre élaboré

dans la fenêtre filtre élaboré cocher :
- copier vers un autre emplacement
- extraction sans doublon

renseigner les fenêtres :
- Plages : sélectionne depuis A1 jusqu'en bas de la colonne A (dans ton exemple : $A$1:$A$42)
- Copier dans : Sélectionne une seule cellule à partir de laquelle sera créée ta table (par exemple K1)
- Ne rien mettre dans Zone de critère, il n'y aura donc pas de filtre tout sera recopié mais sans doublon.

OK : la table est créée.

Il ne reste plus qu'à la peupler en écrivant en L2 la formule : =NB.SI($A$2:$A$42;K2)
et la recopier de L2 à L21

ATTENTION : Si le contenu des lignes du tableau (les formules NB.SI()) se met à jour à chaque modification, la structure du tableau est statique, il faudra le reconstruire à chaque nouveau fournisseur saisi.

Sigismond
 

sigismond

XLDnaute Occasionnel
Re : Compteur dans excel

Oui LaBraise, c'est une solution plus élégante
Avec comme contrepartie que le Tableau croisé dynamique est statique
- en nombre de fournisseurs
- et en nombre d'occurences de chaque fournisseur

mais comme il est rapide à reconstruire...

Je pense que seul VBA peut fournir une solution entièrement automatique.

Une piste intermédiaire serait la solution que je propose qui tiens à jour le nombre d'occurence de chaque fournisseur avec un indicateur qui signale automatiquement quand la structure de la liste n'est plus à jour (en nombre de fournisseurs). Je réfléchis la-dessus.

Sigismond
 
Dernière édition:

CB60

XLDnaute Barbatruc
Re : Compteur dans excel

Re
J'ai commencé par nommer les info qui sont utiles pour la macro.
HTML:
val=DECALER(Feuil1!$F$1;;;NBVAL(Feuil1!$F:$F))val1=DECALER(Feuil1!$J$2;;;NBVAL(Feuil1!$J:$J)-1)val2=DECALER(val1;;1)
"Val " permet de selectionner les valeurs à prendre en compte
"Val1" servira à effacer les valeurs de la colonne J
"Val2 " permet d'ajuster le sommeprod dans la macro.
la macro
HTML:
Sub Macro1()
On Error Resume Next
'efface le contenu de val1 et val2
[val1].ClearContents
[val2].ClearContents
'Selectionne les données les copies sans doublon en J1
    Range("val").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("J1"), Unique:=True
4Selectionne la cellule K2 et affecte la fonction sommeprod
    Range("K2").Select
    ActiveCell.FormulaR1C1 = "=SUMPRODUCT(--(val=RC[-1]))"
    Selection.AutoFill Destination:=Range("val2"), Type:=xlFillDefault
'Tris dans l'ordre croisant les données de la colonne J
    Columns("J:J").Sort Key1:=Range("J2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1
End Sub
 

essor

XLDnaute Nouveau
Re : Compteur dans excel

Re
J'ai commencé par nommer les info qui sont utiles pour la macro.
HTML:
val=DECALER(Feuil1!$F$1;;;NBVAL(Feuil1!$F:$F))val1=DECALER(Feuil1!$J$2;;;NBVAL(Feuil1!$J:$J)-1)val2=DECALER(val1;;1)
"Val " permet de selectionner les valeurs à prendre en compte
"Val1" servira à effacer les valeurs de la colonne J
"Val2 " permet d'ajuster le sommeprod dans la macro.
la macro
HTML:
Sub Macro1()
On Error Resume Next
'efface le contenu de val1 et val2
[val1].ClearContents
[val2].ClearContents
'Selectionne les données les copies sans doublon en J1
    Range("val").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("J1"), Unique:=True
4Selectionne la cellule K2 et affecte la fonction sommeprod
    Range("K2").Select
    ActiveCell.FormulaR1C1 = "=SUMPRODUCT(--(val=RC[-1]))"
    Selection.AutoFill Destination:=Range("val2"), Type:=xlFillDefault
'Tris dans l'ordre croisant les données de la colonne J
    Columns("J:J").Sort Key1:=Range("J2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1
End Sub

Tout marche nikel merci à tous!
 

JCGL

XLDnaute Barbatruc
Re : Compteur dans excel

Bonjour à tous,

Oui LaBraise, c'est une solution plus élégante
Avec comme contrepartie que le Tableau croisé dynamique est statique
- en nombre de fournisseurs
- et en nombre d'occurences de chaque fournisseur

Le TCD est loin d'être statique puisqu'il est dynamique

Par Nom / Definir : Base_TCD : =DECALER(Data!$A:$F;;;NBVAL(Data!$F:$F))
Actualisation à l'activation de la feuille 'TCD' : ActiveWorkbook.RefreshAll

A+ à tous
 

Pièces jointes

  • TCD Article.zip
    10.1 KB · Affichages: 28

Discussions similaires

Réponses
10
Affichages
421

Statistiques des forums

Discussions
312 795
Messages
2 092 193
Membres
105 268
dernier inscrit
mimi 25