Recenser toutes les valeurs d'une matrice et les compter

Bonjour, suite à une série de recherches sur la forum, je n'ai rien trouvé pour me sustenter, je crée donc un nouveau sujet.

Je dispose d'une matrice pour laquelle je souhaite en un clin d'd’œil avoir le recensement des valeurs présente et le ombre de fois où elles apparaissent. Je vous ai mis un exemple pour illustrer.

Je souhaiterai tout simplement un tableau bilan de 2 colonnes, avec dans la première toutes les valeurs présentent dans la matrice et dans la deuxième le nombre de fois où elles apparaissent.

J'ai essayé un TDC, cela ne fonctionne pas, car les étiquettes de colonnes me posent un soucis.

Vous allez être tenté de me proposer un nbval(matrice;valeur), ou une somme.si(matrice;...), mais le soucis c'est que ce genre de formule implique que je connaisse en premier lieu les valeurs présente dans ma matrice. Bien entendu dans mon exemple j'ai les valeurs a, b et c, mais imaginez 1000 lignes et 300 colonnes...

Je souhaiterai donc avoir une petite aide si possible Si vous connaissez des formules qui permettront de générer un tableau bilan de recensement (en fin de compte c'est ce que je souhaite tout simplement) en ayant ensuite la possibilité de modifier ma matrice et que le tableau s'actualise, n'hésitez pas

Merci à vous

45exemple1.xlsx (8.65 Ko)

Codé avec les pieds:

Sub toto()
Dim tablo()

lignedebut = 3
lignefin = 6
coldebut = 2
colfin = 4
colecriture = 5
l = 1
ReDim Preserve tablo(1 To l)
tablo(l) = Cells(lignedebut, coldebut)

For i = lignedebut To lignefin
For j = coldebut To colfin
ajout = True
For k = LBound(tablo) To UBound(tablo)
If Cells(i, j) = tablo(k) Then
ajout = False
End If
Next k
If ajout = True Then
l = l + 1
ReDim Preserve tablo(1 To l)
tablo(l) = Cells(i, j)
End If
Next j
Next i

For i = LBound(tablo) To UBound(tablo)
Cells(i + 1, colecriture) = tablo(i)
Next i

For i = LBound(tablo) To UBound(tablo)
For j = lignedebut To lignefin
For k = coldebut To colfin
If Cells(i + 1, colecriture) = Cells(j, k) Then
Cells(i + 1, colecriture + 1) = Cells(i + 1, colecriture + 1) + 1
End If
Next k
Next j
Next i

End Sub

Yes, merci! il va falloir un jour que je me mette aux macros...

Je regarde de mon côté comment celle-ci fonctionne et je tenterai de l'adapter sur ma matrice qui est un peu plus fournie

Encore un grand merci


Arf quoique, toutefois, comment on l'actualise par contre s'il vous plaît?

Par exemple je viens de modifier une valeur et rien ne s'est passé, j'ai relancé la macro et là les valeurs données du recensement ne sont pas exactes :/ Je m'explique : au lieux de remettre à zéro et de recompter, la macro recompte simplement et les valeurs nouvelles s’additionnent aux anciennes

merci

Change cette boucle:

For i = LBound(tablo) To UBound(tablo)
Cells(i + 1, colecriture) = tablo(i)
Cells(i + 1, colecriture+1)= ""
Next i

Je m'incline, vous remercie et vous salue

Bonjour,

j'ai exactement le même problème : j'ai un fichier client (avec nom, contacts, adresse..). je cherche à recenser les valeurs (ville) et à les dénombrer, le tout de manière automatique afin d'éviter toute erreur ou oubli. le but étant aussi d'avoir un tableau à 2 colonnes avec à gauche mes valeurs, et à droite leur occurrence.

d'après vos commentaires, il faut utiliser les macros, mais je ne sais pas du tout m'en servir, et en fait, je ne comprend pas trop comment adapter vos propositions à mon propre tableau.

pouvez-vous m'aider SVP ?

Rechercher des sujets similaires à "recenser toutes valeurs matrice compter"