XL 2013 Remove Duplicate

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

escouger

XLDnaute Occasionnel
Bonjour,

Dans une macro je désire supprimer des doublons sur une colonne.
La détermination de la plage concernée par ces doublons est dynamique.
Je rencontre un souci dans un cas bien précis, et cela ressemble à un BUG mais j'aimerais votre avis.

En effet si la plage sélectionnée ne contient qu'une seule ligne, cette ligne est effacée.

Cellule B100 = "MON NOM"
Lig_e contient 100
lig_last contient 100

Adr_l = "B" & lig_e & ":B" & lig_last (donc B100:B100)
ActiveSheet.Range(adr_l).RemoveDuplicates Columns:=1, Header:=xlNo

Resultat: Cellule B100 = ""

J'ai pallié au problème en rajoutant un test permettant de ne pas exécuter la commande "RemoveDuplicates" lorsque la plage ne contient qu'une seule ligne. (si lig_e <> lig_last then).

Merci de m'indiquer si j'ai commis une erreur quelque part ou s'il s'agit d'un bug déjà répertorié.

GE
 
Re : Remove Duplicate

Bonjour,

Essayez avec Header:=xlYes.
Si ce n'est pas bon, fournissez un classeur exposant le problème.


Bonne soirée.


ℝOGER2327
#8113


Mardi 24 As 143 (Saint Berbiguier, martyr - fête Suprême Quarte)
5 Frimaire An CCXXIV, 6,6249h - cochon
2015-W48-4T15:54:00Z
 
Re : Remove Duplicate

Bonjour,
Voici un petit fichier d'exemple. (voir pièce jointe)
A1 = a
A2 = a
A3 = c
A4 = d

Macro = Macro1 déclenchée via le bouton bleu "TESTER"

La sélection sur laquelle porte le recherche des doublons est A1:A1

Le résultat :
A1 = a
A2 = c
A3 = d

.....alors que j'attends logiquement
A1 = a
A2 = a
A3 = c
A4 = d
comme si rien ne s'était passé car sur A1:A1 il ne peut pas y avoir de doublons!
Je conçois que çà puisse paraître curieux de supprimer des doublons sur une seule ligne....mais dans mon programme réel, le calcul de ctr2 est dynamique et peut donner 1 ou > selon d'autres conditions.

Merci

GE
 

Pièces jointes

Re : Remove Duplicate

Re

Bises laetitia

2 versions:

1) on n'a qu'une colonne ( A et A)

Range("A1").Select
ctr1 = 1
ctr2 = 1
Adr_l = "A" & ctr1 & ":A" & ctr2
ActiveSheet.Range(Adr_l).RemoveDuplicates

2 colonnes ( ou plus A et B)
Range("A1").Select
ctr1 = 1
ctr2 = 1
Adr_l = "A" & ctr1 & ":B" & ctr2
ActiveSheet.Range(Adr_l).RemoveDuplicates Columns:=1, Header:=xlNo
 
Re : Remove Duplicate

Merci Laetitia90 et PierreJean,

Grâce à vous j'ai trouvé ce qui n'allait pas.
En fait mon code fonctionne si je ne mets pas "Columns:=1" dans la ligne du RemoveDuplicates.

En résumé:
Avec "Columns:=1" la ligne 1 est supprimée car, malgré la sélection A1:A1, il considère toute la colonne pour supprimer les doubles.
Sans "Columns:=1" il ne considère que la sélection indiquée soit A1:A1 et ne supprime donc rien.
Ceci étant, Je n'ai pas vu cela expliqué dans la doc de Microsoft!
Merci
GE
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour