XL 2016 Supprimer enregistrement identique

  • Initiateur de la discussion Initiateur de la discussion KTM
  • 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 !

KTM

XLDnaute Impliqué
Bonjour chers tous

Je voudrais supprimer par macro sur mes deux plages les lignes pour lesquelles le Code - l'Age - le sexe sont identiques.
Merci et bonne journée.
 

Pièces jointes

Bonjour KTM, kiki29, Jacky67, Pierre,

Voyez le fichier joint et la macro du bouton :
VB:
Private Sub CommandButton1_Click()
Dim P As Range, Q As Range, Prc&, Qrc&, R As Range, S As Range
Set P = [A1].CurrentRegion: Prc = P.Rows.Count - 1
Set Q = [G1].CurrentRegion: Qrc = Q.Rows.Count - 1
If Prc * Qrc = 0 Then Exit Sub 'si un tableau est vide
Set P = P.Offset(1).Resize(Prc)
Set Q = Q.Offset(1).Resize(Qrc)
Application.ScreenUpdating = False
P.Copy Q(Qrc + 1, 1): Set R = Q(Qrc + 1, 1).Resize(Prc, P.Columns.Count)
Q.Copy P(Prc + 1, 1): Set S = P(Prc + 1, 1).Resize(Qrc, Q.Columns.Count)
P.EntireColumn.RemoveDuplicates Array(1, 3, 4)
Q.EntireColumn.RemoveDuplicates Array(1, 3, 4)
R.Cut P(Prc + Qrc + 1, 1): S.Cut Q(Prc + 1, 1)
P.Resize(Prc + Qrc).Delete xlUp: Q.Delete xlUp
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Elle est très rapide car il n'y a pas de boucle.

A+
 

Pièces jointes

Bonjour KTM, kiki29, Jacky67, Pierre,

Voyez le fichier joint et la macro du bouton :
VB:
Private Sub CommandButton1_Click()
Dim P As Range, Q As Range, Prc&, Qrc&, R As Range, S As Range
Set P = [A1].CurrentRegion: Prc = P.Rows.Count - 1
Set Q = [G1].CurrentRegion: Qrc = Q.Rows.Count - 1
If Prc * Qrc = 0 Then Exit Sub 'si un tableau est vide
Set P = P.Offset(1).Resize(Prc)
Set Q = Q.Offset(1).Resize(Qrc)
Application.ScreenUpdating = False
P.Copy Q(Qrc + 1, 1): Set R = Q(Qrc + 1, 1).Resize(Prc, P.Columns.Count)
Q.Copy P(Prc + 1, 1): Set S = P(Prc + 1, 1).Resize(Qrc, Q.Columns.Count)
P.EntireColumn.RemoveDuplicates Array(1, 3, 4)
Q.EntireColumn.RemoveDuplicates Array(1, 3, 4)
R.Cut P(Prc + Qrc + 1, 1): S.Cut Q(Prc + 1, 1)
P.Resize(Prc + Qrc).Delete xlUp: Q.Delete xlUp
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Elle est très rapide car il n'y a pas de boucle.

A+
Hello job75
Le mois dernier ==> avec un tableau VBA 😳
Aujourd'hui ==>sans boucle 😵
La semaine prochaine ????...(Sans code) 😉 😉
Bravo, une fois de plus
 
- 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
8
Affichages
203
Réponses
1
Affichages
337
Réponses
20
Affichages
320
Réponses
7
Affichages
316
Réponses
18
Affichages
204
Retour