1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
'Option Explicit
Sub Comptage_unique()
'
' Comptage_unique Macro
' la macro compte le nombre de chaque valeurs d'une colonne
' affiche le ration 1 sur nombre de valeurs pour comptabilisation dans TCD
'
Dim Dercol As Byte, Derlig As Long, T_in
Dim Dico As Object, Lig As Long, Col As Long
Dim start As Single
Dim colcount As Integer
Dim colbut As Integer
Msg = "Indiquer la colonne (en chiffres) à compter"
Title = "Colonne des valeurs à compter"
colcount = Application.InputBox(Msg, Title)
Msg = "Indiquer la colonne (en chiffres) où vous voulez le résultat"
Title = "Colonne résultat"
colbut = Application.InputBox(Msg, Title)
'start = Timer
Application.ScreenUpdating = False
Set Dico = CreateObject("scripting.dictionary")
Derlig = Columns(colcount).Find(what:="*", SearchDirection:=xlPrevious).Row
T_in = Range(Cells(1, colcount), Cells(Derlig, colcount))
For Lig = 1 To Derlig
If Not Dico.exists(T_in(Lig, 1)) Then
Dico.Add T_in(Lig, 1), 1
Else
Dico(T_in(Lig, 1)) = Dico(T_in(Lig, 1)) + 1
End If
Next
For Lig = 1 To Derlig
Cells(Lig, colbut) = 1 / Dico(T_in(Lig, 1))
Next
'Application.ScreenUpdating = True
'MsgBox "durée: " & Timer - start & " sec."
End Sub
' |
Partager