Bonjour linette44,
Voici une solution possibe:
- Tu crée un tableau dans lequel tu mets les valeurs de ta colonne
- Tu classe les éléments de ce tableau par ordre croissant
- Tu met un compteur qui parcourt le tableau et qui s'incrémente à chaque fois qu'il trouve deux cases successives de valeurs différentes.
Voici le code correspondant:
Sub nombreValeurs()
'Tu crée un tableau où tu va mettre les valeurs de ta colonne
Dim monTableau(5) As String 'tu mets la taille de ton tableau
Dim i, j, n As Integer
Dim myRange As Range
Dim R As Range
i = 0
j = 0
k = 0
n = 1
Set myRange = Range("A2:A6")
For Each R In myRange
If R.Value <> "" Then '(non vides)
monTableau(k) = R.Value
k = k + 1
End If
Next R
' Tri croissant du tableau
Dim str As String
For i = 0 To UBound(monTableau) - 2
For j = i + 1 To UBound(monTableau) - 1
If monTableau(i) > monTableau(j) Then
str = monTableau(i)
monTableau(i) = monTableau(j)
monTableau(j) = str
End If
Next j
Next i
'Calcul de n, le nombre de valeurs
For i = 0 To UBound(monTableau) - 2
If monTableau(i) <> monTableau(i + 1) Then
n = n + 1
End If
Next i
ActiveSheet.Range("A1") = n
End Sub