Bonjour, j'utilise le code suivant pour compter les valeurs uniques dans une colonne.
Le code ne fonctionne pas avec l'instruction columns(Nart) mais il marche très bien avec range("A:A") par exemple, or ma colonne d'article ne se trouve pas toujours dans la colonne A. La fonction NumeroColonne renvoie la numéro de colonne dont l'en-tête est "Article" et fonctionne bien.
Public Function compter_uniques(plage As Range) As Long
Dim compteur_pas_unique As Variant
Set dico = CreateObject("scripting.dictionary")
For Each cellule In plage
ref = cellule.Value
If Not dico.exists(ref) Then
dico.Add ref, ref
End If
Next
compter_uniques = dico.Count
compteur_pas_unique = plage.Cells.Count - dico.Count
End Function
Sub test()
Nart = NumeroColonne("Article", "Données", xlWhole)
MsgBox Nart
MsgBox compter_uniques(Sheets("Données").Columns(Nart))
End Sub
L'erreur d'exécution 5 est relative à la ligne :
If Not dico.exists(ref) Then
Je ne comprends pas comment la résoudre...
Merci pour votre aide
Bien cordialement
PS : j'ai "voler" la fonction "compter_uniques" sur un forum que je ne retrouve plus :)