XL 2010 Macro pour supprimer doublons avec une condition

  • Initiateur de la discussion Initiateur de la discussion Jauster
  • Date de début Date de début

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 !

Jauster

XLDnaute Occasionnel
Bonjour,

Je ne sais pas comment m'y prendre pour avoir une macro qui va supprimer les doublons de la colonne B (fichier ci-joint), mais en gardant uniquement la ligne des deux derniers chiffres les plus grands de la colonne A.
En effet, la colonne B est soit composée de :
- Tous les caractères de la cellule en colonne A sans les deux derniers si il n'y a qu'une lettre au début
- Tous les caractères de la cellule en colonne A si il y a 3 lettres au début
Les lettres sont toujours au début de la chaîne de caractères.
La colonne A n'est pas forcement triée par ordre croissant.

En rouge-gras le résultat souhaité après avoir supprimé les doublons
 

Pièces jointes

Dernière édition:
Bonjour Jauster,

Voyez le fichier joint, les formules en colonnes B et C et la macro du bouton :
Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
[A:C].Copy [E1]
With Intersect([E:G], UsedRange.EntireRow)
  .Value = .Value 'supprime les formules
  .Sort [G1], xlDescending, Header:=xlYes 'tri décroissant sur la colonne G
End With
[E1].CurrentRegion.RemoveDuplicates Columns:=2, Header:=xlYes 'supprime les doublons
End Sub
A+
 

Pièces jointes

Re,

Bien sûr on peut se passer des colonnes B et C :
Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
[D:E].Insert 'insertion de 2 colonnes auxiliaires
[A:A].Copy [C1]
With Intersect([C:E], UsedRange.EntireRow)
  .Columns(2) = "=LEFT(C1,LEN(C1)-2*ISNUMBER(-MID(C1,2,1)))"
  .Columns(3) = "=RIGHT(C1,2)+ROW()/1000000000"
  .Value = .Value 'supprime les formules
  .Sort [E1], xlDescending, Header:=xlYes 'tri décroissant sur la colonne E
End With
[C1].CurrentRegion.RemoveDuplicates Columns:=2, Header:=xlYes 'supprime les doublons
[D:E].Delete 'suppression des colonnes auxiliaires
End Sub
Fichier (2).

A+
 
J'ai intégré cette macro à une autre macro (grace à Call NomDeLaMacro) qui va me chercher les données dans un autre classeur pour les coller en colonne A, mais il m'affiche une erreur :
"Erreur de compilation: Sub ou Function non définie".

Est-ce parce que c'est une private Sub ?
 
Dernière édition:
- 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

Discussions similaires

Réponses
17
Affichages
514
Réponses
2
Affichages
133
Réponses
9
Affichages
442
Réponses
1
Affichages
336
Réponses
3
Affichages
160
Réponses
2
Affichages
450
Réponses
52
Affichages
2 K
Réponses
12
Affichages
282
Retour