RemoveDuplicates - Nombre de colonnes variables en paramètre

Guiral

XLDnaute Nouveau
Bonjour,

Sous Excel 2010, je souhaite supprimer les doublons d’une plage entière, pour toutes les colonnes.
J’utilise donc :

rgCible.RemoveDuplicates

Sauf que, contrairement à ce que dit l’aide Excel, si je ne précise pas les colonnes, ça ne dédoublonne rien.
Comme j’ai 30 colonnes dans ma plage, je fais donc ceci, qui fonctionne très bien :

rgCible.RemoveDuplicates Columns:=Array(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)


Oui, mais le nombre de colonnes est en dur dans le code et que ça ne me plait pas.
Je voudrais pouvoir traiter des plages de dont le nombre de colonnes est variable.

Dans ce cas, comment passer en paramètre dans « Columns := » un tableau dont le nombre d’indices n’est pas connu à l’avance ?

Merci de vos réponses,

Guiral.
 

Staple1600

XLDnaute Barbatruc
Re : RemoveDuplicates - Nombre de colonnes variables en paramètre

Bonjour à tous


Il semble que cela fonctionne ainsi
Code:
Sub a()
Dim tCols() As Variant, i&, x&
With Range("A1").CurrentRegion
    x = .Columns.Count - 1
        ReDim tCols(x)
        For i = 0 To x
             tCols(i) = i + 1
        Next i
    .RemoveDuplicates Columns:=(tCols), Header:=xlYes
End With
End Sub
PS: Test OK sur une plage sans trous
 

Guiral

XLDnaute Nouveau
Re : RemoveDuplicates - Nombre de colonnes variables en paramètre

Désolé Laetitia, mais ça ne fonctionne pas.

Il semblerait que le Find ne me retourne que la première colonne, alors qu'il me les faudrait toutes.
Et puis j'avoue avoir un peu de mal à comprendre comment fonctionne le Find.

Dommage parce que ta solution était synthétique et élégante...

Guiral
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 237
Membres
103 497
dernier inscrit
JP9231