Compter des données

Bonjour à tous,

je cherche à réaliser une macro pour "compter" des données.... jui sûr que c'est tout bête mais pour être honnête, je sèche...

Pour faire simple, dans un colonne, j'ai différentes données (avec certaines qui apparaissent plusieur fois), j'aimerais une macros qui, si possible, dans une nouvelle feuille me mette chaque donnée avec dans la case à coté le nombre de fois ou la donnée apparait dans la feuille d'origine...

Si quelqu'un à une idée...

J'espère que mes explications ne sont pas trop vaseuses... dites moi si vous voulez des précisions...

Merci d'avance

G.

Essaie avec une boucle de ce type :

for i = 1 to Nbcellules
if Cell(i, colonne).value = "Valeur à comparer" then
compteur = compteur + 1
End if
next i

Bien penser à initialiser le compteur à 0.

Edit :

for i = 1 to Nbcellules
Valeurcompare = cells(i,colonne).value
for j = 1 to Nbcellules
If cells(j, colonne).value = ValeurCompare then
compteur = compteur +1
end if
next j
next i

Merci pour ta réponse ultra rapide ! J'ai une autre macro en train de tourner, j'essaie ca dès que possible. (ce soir ou demain matin) et je te dis

hey? j'ai essayé ce matin... malheureusement je n'y arrive pas

Je débute tout juste en VBA du coup j'ai encore du mal...

Bonnjour,

Ci-joint fichier et code à méditer

Option Explicit
Public Sub Compter()
'Ctrl + w
Dim Ws_source As Worksheet, Ws_résultat As Worksheet
Dim Derligne As Long
Dim Plage As Range, c As Range
Dim Mondico

    Application.ScreenUpdating = False
    Set Ws_source = Worksheets("Données")
    Derligne = Ws_source.Range("A" & Rows.Count).End(xlUp).Row
    Set Plage = Ws_source.Range("A2:A" & Derligne)
    Set Ws_résultat = Worksheets("Résultat")
    Set Mondico = CreateObject("Scripting.Dictionary")

    With Ws_résultat
        .Cells.Clear
        .Cells(1, 1) = "Titre"
        .Cells(1, 2) = "Nb valeurs"
    End With

    For Each c In Plage
        Mondico(c.Value) = Mondico(c.Value) + 1
    Next c

    With Ws_résultat
        .[A2].Resize(Mondico.Count, 1) = Application.Transpose(Mondico.keys)
        .[B2].Resize(Mondico.Count, 1) = Application.Transpose(Mondico.items)
        .[A1].Sort Key1:=.[A2], Order1:=xlAscending, Header:=xlYes
    End With

    Set Ws_source = Nothing: Set Ws_résultat = Nothing: Set Mondico = Nothing: Set Plage = Nothing

End Sub
Rechercher des sujets similaires à "compter donnees"