Microsoft 365 Supprimer les doublons en conservant les valeurs vides

  • 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,
En pièce jointe un classeur avec une liste sur les colonnes ABC.
Je souhaite supprimer les lignes (sur place) avec des valeurs en double sur la colonne C.
Lors de cette suppression, je veux conserver toutes les lignes qui n'ont pas de valeur dans la colonne C.
Exemple attendu sur EFG.
Merci d'avance pour votre aide.
Bien cordialement,
Ivan
 

Pièces jointes

Solution
Bonsoir @ivan27 🙂,

Ce code dans module1 devrait le faire (cliquer sur le bouton Hop!) :
VB:
Sub SupprDoublons()
Dim der&
   Application.ScreenUpdating = False
   With Sheets("Feuil1")
      If .FilterMode Then .ShowAllData
      Range("a:c").Copy Range("e:g")
      der = .Cells(.Rows.Count, "a").End(xlUp).Row
      On Error Resume Next
      Range("g1").Resize(der).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=""[ligne]""&ROW()"
      Range("g1").Resize(der) = Range("g1").Resize(der).Value
      Range("e1:g1").Resize(der).RemoveDuplicates Columns:=3, Header:=xlYes
      Range("e1:g1").Resize(der).Replace what:="[ligne]*", replacement:=""
   End With
End Sub
Bonsoir @ivan27 🙂,

Ce code dans module1 devrait le faire (cliquer sur le bouton Hop!) :
VB:
Sub SupprDoublons()
Dim der&
   Application.ScreenUpdating = False
   With Sheets("Feuil1")
      If .FilterMode Then .ShowAllData
      Range("a:c").Copy Range("e:g")
      der = .Cells(.Rows.Count, "a").End(xlUp).Row
      On Error Resume Next
      Range("g1").Resize(der).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=""[ligne]""&ROW()"
      Range("g1").Resize(der) = Range("g1").Resize(der).Value
      Range("e1:g1").Resize(der).RemoveDuplicates Columns:=3, Header:=xlYes
      Range("e1:g1").Resize(der).Replace what:="[ligne]*", replacement:=""
   End With
End Sub
 

Pièces jointes

- 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
1
Affichages
263
Réponses
2
Affichages
330
  • Question Question
Microsoft 365 Souci de copie
Réponses
8
Affichages
68
Retour