bonjour,
ce n'est peut-être pas la solution la plus brillante, il reste à dimensionner v éventuellement
Cette macro fonctionne sur une sélection mais il est aisé de l'adapter à une plage :
Code :
- Sub Test()
- Dim i%, k%, o As Range, Y As Boolean, Tablo()
- ReDim Tablo(0)
- For Each o In Selection
- v = o.Value
- For i = 1 To UBound(Tablo)
- If v = Tablo(i) Then
- Y = True: Exit For
- End If
- Next
- If Not Y Then
- ReDim Preserve Tablo(UBound(Tablo) + 1)
- Tablo(UBound(Tablo)) = v
- End If
- Y = False
- Next
- For k = 1 To UBound(Tablo)
- MsgBox Tablo(k)
- Next
- End Sub
|
Nota :
on gagnerait surement en temps d'éxécution si on remplacait la 1ère boucle for each par :
For x = NoPremL to 55765 'en remplaçant NoPremL par le N° de la première ligne
v = Cells(x, NumCol).Value ' en remplaçant NumCol par le N° de colonne à tester...
... le reste sans changement
Bien sur dans ce cas les adresses étant définies "en dur" pas besoin de sélection au départ.
A+
Message édité par galopin01 le 08-09-2005 à 08:53:55