Compter et les éléments d'une colonne

Bonjour,

je n'arrive pas (en vba) à déterminer dans une colonne (2000 entrées pour l'instant) combien de données existent, et combien sont entrées plusieurs fois. Et je souhaiterais entrer ça dans une ListBox.

Un dessin vaut mieux qu'un long discours

Voici ma colonne de données:

Donnée_1

Donnée_2

Donnée_2

Donnée_5

Donnée_5

Donnée_5

Donnée_5

Donnée_9

Je souhaiterais remplir une ListBox de cette manière:

Donnée_5 4

Donnée_2 2

Donnée_1 1

Donnée_9 1

Le super pied serait que lorsque les quantités sont identiques (par exemple Donnée_1 et Donnée_9 dans l'exemple) un classement soit effectué par ordre décroissant.

La structure de "Donnée_x" est TOUJOURS la même: A12345678 (une lettre suivie de huit chiffres)

J'ai essayé à l'aide de plusieurs boucles imbriquées....C'est la cata

Merci de vous pencher sur mon cas )

Bonjour,

résultat en colonne "B", te reste à nommer la liste

Sub Liste()
Dim Lg%, i%, x%
'Macro par Claude Dubois pour "BastLat" Excel-Pratique le 12/04/11
    Lg = Range("a65536").End(xlUp).Row
    Application.ScreenUpdating = False
    Application.CutCopyMode = False
    Columns("b").Insert
        For i = 2 To Lg
            x = Application.CountIf(Range("a:a"), Cells(i, "a"))
            Cells(i, "b") = Cells(i, "a") & " " & x
            Cells(i, "c") = x
        Next i
    '--- tri ---
    Range("b1:c1") = "ListeDonnées"
    Range("b1:d" & Lg).Sort Key1:=Range("c1"), Order1:=xlDescending, Key2:=Range("b1") _
        , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom
    '--- sans doublons ---
    Range("b1:b" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Range("o1:o2"), CopyToRange:=Range("c1"), Unique:=True
    Columns("b").Delete
    Columns("b").AutoFit
End Sub

Amicalement

Claude

édit: avec tri comme demandé

changé le code et fichier

86bastlat-liste-2.zip (12.99 Ko)

Merci dubois, c'est ce que je cherche à faire, et ça me donne une super base.

Mais...Deux questions:

  • Est il possible d'effectuer ceci sans écrire sur la feuille, en mémoire à l'aide de tableaux par exemple..
  • Comme dit dans mon post initial, je souhaite insérer le résultat dans une ListBox, et je ne connais que cette methode (exemple).
For z = 0 To Lig
    ListBox1.AddItem
    ListBox1.List(z, 0) = Cells(z, 1).Value
    ListBox1.List(z, 1) = Cells(z, 2).Value
    ListBox1.List(z, 2) = Cells(z, 3).Value
    ListBox1.List(z, 3) = Cells(z, 4).Value
Next

Y a t il plus simple ? Plus "synthétique" ?

Merci

Bonjour

Regarde si la création de la ListBox de ce fichier te convient :

78bastlat.zip (20.63 Ko)

Amicalement

Nad

Merci pour vos pistes.

Ca me donne bien à cogiter !

Bonjour à tous, Salut Nad,

Je n'utilise pas de UserForm ! (preuve qu'on peut s'en passer)

suite de ma 1ère idée, avec 2 sortes de liste

Bonne journée

Claude

65bastlat-liste-3.zip (17.66 Ko)

Puisque vous avez planché sur mon pb, je ne vais pas vous laisser vous reposer comme ça

L'idée de la UserForm, même si elle est sympa ne me satisfesait pas trop, car je veux éviter d'afficher trop de contrôles sur une feuille déjà bien chargée... Désolé NAd

Maintenant, étant du genre borné, je continue à chercher à "copier" ma liste dans un tableau dynamique puis à effectuer les opérations que vous effectuez à l'aide d'une deuxième colonne sur un deuxième tableau dynamique, et ensuite la "cuisine" terminée injecter le résultat dans une ListBox.

Pensez vous que ceci soit possible. Là j'atteinds mes limites....

Me revoici avec mon problème.

J'ai bien avancé en reprennant un code que j'avais bidouillé pour classer des indices.

Les boucles de tri ne sont pas de moi (sorry, j'ai effacé les comm de l'auteur pour y voir plus clair)

Mais le reste si

J'y suis presque sauf que je n'arrive pas à compter les premières Ref de la liste (colonne D).

Et j'ai aussi un message d'erreur "incompatibilité de type" si je réactive les lignes juste après la remarque:

" 'Pour info Affiche le résultat dans la colonne E"

Parfois ça marche, parfois pas. Ca dépend des Références que je trie. La déclaration des variables ça n'a jamais été mon truc...

Enfin voilà. Si vous avez un moment...

EDIT: en fait c'est une incompatibilité de type, car si je mets "On Error Goto fin" en rem ça plante aussi

-- Jeu Avr 14, 2011 11:15 am --

Je me réponds à moi même....

Un "Option Explicit" plus loin, une vérification lors des manips du tableau Palm(), et ça ne plante plus.

Ceci dit, je pense que mon code doit faire bondir un puriste...

Si vous avez des améliorations, je ne demande qu'à apprendre

69liste-ok.zip (26.68 Ko)
Rechercher des sujets similaires à "compter elements colonne"