Etablir une liste des differentes valeurs dans matrice et calculer nbre de répetition

shmider

XLDnaute Occasionnel
Bonsoir à toutes et tous,

Je suis très content de vous retrouver ce soir. J'éspère que tout le monde s'amuse et va bien.

Bien, mon soucis est le suivant:
- Créer une liste des éléménts differents contenus dans un tableau,
- Calculer combien de fois ces éléments ce sont répetés dans la table.

Je suis entrain de creuser, mais rien de concrer.

Ci joint un petit apérçu du problème.

Merci à vous et bon courage.
@+
 

Pièces jointes

  • Ullistration du problème test1.xls
    21.5 KB · Affichages: 101
Dernière édition:

shmider

XLDnaute Occasionnel
Re : Etablir une liste des differentes valeurs dans matrice et calculer nbre de répet

Bonsoir ROGER2327,

Je teste et je te ferai un retour.

D'après ce que je vois, tu t'es donné du temps pour m'aider, chappeau ;)

Cependant, je vais essayé de comprendre ton code ROGER2327, et je te dirai quoi.

Merci pour ton temps :)

@+
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Etablir une liste des differentes valeurs dans matrice et calculer nbre de répet

Re...
Code commenté :
Code:
[COLOR="DarkSlateGray"]Sub compteval()
Dim coll As New Collection, oCel As Range, c As Long
   With Range("DATA") [COLOR="SeaGreen"]'Ici "A5:H23"
   
'   On utilise une Collection pour dresser la liste des valeurs distinctes dans _
la plage "DATA"[/COLOR]
   
      On Error Resume Next
      For Each oCel In .Cells
         coll.Add Item:=oCel.Value, Key:=CStr(oCel.Value)
      Next oCel
      On Error GoTo 0
      
[COLOR="SeaGreen"]'   On récupère les éléments de la Collection dans un tableau, et pour chaque _
valeur récupérée, on compte le nombre d'occurrences de la dite valeur.[/COLOR]

      ReDim odat(1 To coll.Count, 1 To 2)
      For c = 1 To coll.Count
         odat(c, 1) = WorksheetFunction.CountIf(.Cells, coll.Item(c))
         odat(c, 2) = coll.Item(c)
      Next c
   End With
   
[COLOR="SeaGreen"]'   On efface les résultats trouvés précédemment (s'il y en a !) et on affiche _
le résultat de la recherche.[/COLOR]

   With Range("COMPTE") 'Ici "I5"
      .Value = " "
      .Resize(1 + .Offset(-1, 0).End(xlDown).Row - .Row, 2).ClearContents
      .Resize(coll.Count, 2).Value = odat
   End With
End Sub[/COLOR]
Bon courage.
ROGER2327
#1981
 

shmider

XLDnaute Occasionnel
Re : Etablir une liste des differentes valeurs dans matrice et calculer nbre de répet

Re à toi ;) ROGER2327,

Est ce que ça te derrangerai que je te fasse un retour demain soir? je vais essayé de lire, comprendre et adopter ton code à mon fichier à tete reposée ! ;)

Merci beaucoup, je pense que ça devrais aller. Demain, je te tienderai au courant.

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 342
Messages
2 087 432
Membres
103 543
dernier inscrit
YannBernard