Microsoft 365 Suppression de doublons

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

ivan27

XLDnaute Occasionnel
Bonsoir à tous,

Je cherche à supprimer des lignes avec doublons.

Dans le classeur en pièce jointe :
Une feuille ''kpi'' avec un tableau qui s'étend sur les colonnes "BH:CG" sur lequel je dois supprimer des lignes avec doublons.
Une feuille ''liste'' avec un tableau sur les colonnes "A:B"

1 - Si sur le tableau de la feuille ''kpi'' une référence de la colonne BY existe sur la feuille ''liste'' colonne B, alors je supprime la ligne concernée sur la feuille ''kpi''.
2 - Si sur le tableau de la feuille ''kpi'' je trouve des références identiques sur la colonne BY, alors je supprime la ligne qui contient la valeur ''XXXXXX'' en colonne BH.

J'ai coloré les lignes qui doivent être supprimées dans mon exemple.

Merci d'avance pour votre aide,

Ivan
 

Pièces jointes

Bonsoir à tous,

Un essai en VBA. Le code est dans le module de la feuille "kpi"..
Cliquer sur le bouton Hop !
Pas spécialement recherché la rapidité d'exécution. Si trop lent, le signaler pour une autre version.

Le code :
VB:
Sub SupprCustRef()
Dim derlig&, i&, ref, neq, t, r, colBH&, colCG&, effacer As Boolean, N&, M&
   Application.ScreenUpdating = False
   If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
   derlig = Cells(Rows.Count, "bh").End(xlUp).Row
   If derlig = 2 Then Exit Sub
   For i = Cells(Rows.Count, "bh").End(xlUp).Row To 3 Step -1
      ref = Cells(i, "by")
      On Error Resume Next
      neq = Application.Match(ref, Worksheets("liste").Columns("b:b"), 0)
      On Error GoTo 0
      If Not IsError(neq) Then
         Range("bh" & i & ":cg" & i).Delete xlShiftUp: N = N + 1
      End If
   Next i
   derlig = Cells(Rows.Count, "bh").End(xlUp).Row
   If derlig <= 3 Then Exit Sub
   Range(Cells(2, "bh"), Cells(derlig, "cg")).Sort key1:=Range("by2"), order1:=xlAscending, Header:=xlYes
   t = Range("bh1:by" & derlig + 1)
   colBH = 1: colCG = UBound(t, 2)
   For i = derlig + 1 To 3 Step -1
      If InStr(t(i, colBH), "XXXXXX") > 0 Then
         effacer = False
         effacer = (t(i + 1, colCG) = t(i, colCG)) Or (t(i - 1, colCG) = t(i, colCG))
         If effacer Then Range("bh" & i & ":cg" & i).Delete xlShiftUp: M = M + 1
      End If
   Next i
   MsgBox N & " ligne(s) supprimée(s) - Pas dans liste" & vbLf & vbLf & _
          M & " ligne(s) supprimée(s) - Doublon XXXXXX"
End Sub
 

Pièces jointes

Dernière édition:
Re bonsoir le forum, chris, mapomme,

Merci beaucoup mapomme pour cette proposition qui fonctionne parfaitement sur mon fichier test.
chris, mon niveau sur PowerQuery n'est pas suffisamment élevé pour que je m'en sorte dans cette situation.
Bonne fin de week-end à tous
Ivan
 
RE
Re bonsoir le forum, chris, mapomme,

Merci beaucoup mapomme pour cette proposition qui fonctionne parfaitement sur mon fichier test.
chris, mon niveau sur PowerQuery n'est pas suffisamment élevé pour que je m'en sorte dans cette situation.
Tu as besoin de quelqu'un pour te donner le code VBA donc ton niveau VBA n'est pas meilleur que ton niveau PowerQuery...

Ayant déjà vu que tu privilégiais VBA dans d'autres fils, je n'ai pas pris la peine de faire la requête, très simple au demeurant.

Sorry mais je suis toujours ébahi par ce genre de commentaire.
Personne parmi ceux qui postent ici des solutions PowerQuery ne se sont réveillés un matin expert PQ.
C'est en forgeant qu'on devient forgeron et donc en essayant qu'on progresse...
 
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
411
  • Question Question
XL 2021 Doublons
Réponses
7
Affichages
135
Réponses
1
Affichages
180
Réponses
7
Affichages
116
Réponses
2
Affichages
384
Réponses
1
Affichages
308
Réponses
4
Affichages
476
Retour