Suppression de doublons selon conditions

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

J

Janko

Guest
Bonsoir à toutes et à tous,

A partir du fichier joint, je voudrais :

Pour le même numéro de prestation (colonne B):

1- si j'ai en colonne H :
C
M
MN
Alors je supprime les 3 lignes correspondantes

2- si j'ai en colonne H :
C
M
Alors je supprime les 2 lignes correspondantes


J'arrive à supprimer les 3 lignes correspondant aux 3 premiers doublons. Seulement, après la suppression, il passe à la cellule suivante tout en remontant de 3 lignes sur la plage, ce qui me décale tout.
Comment remédier à ce problème (en partant du bas) ? 🙁

Merci pour vos lumières.

Janko [file name=Test_20051005172646.zip size=7262]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Test_20051005172646.zip[/file]
 

Pièces jointes

Bonsoir Janko

Un essai...

En VBA jer ne sais pas faire la première partie 😱
c'est à dire reperer les 'doublons' ou 'triplets'

Je le fais donc par formule
Une bonne âme va surement combler ces lacunes ! :lol:

ensuite le reperage étant effectué on delete les lignes (en VBA cette fois)
Un peu hybride cette bidouille mais en attendant mieux.... 😱

@+ GD [file name=Janko.zip size=8243]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Janko.zip[/file]
 

Pièces jointes

Bonsoir Gérard, bonsoir le Forum,

Je reviens enfin vers vous pour vous communiquer la solution (une partie du code) que j'ai finalement appliquée :

'Effacement N° des doublons :
For Each cell In Plage
If cell = cell.Offset(1, 0) And cell = cell.Offset(2, 0) And cell.Offset(0, 1) = cell.Offset(2, 1) Then
Union(cell, cell.Offset(1, 0), cell.Offset(2, 0)).Clear
ElseIf cell = cell.Offset(1, 0) Then
If cell.Offset(0, 1) = cell.Offset(1, 1) Then
If cell.Offset(0, 15) = 'C' And cell.Offset(1, 15) = 'M' Then
Union(cell, cell.Offset(1, 0)).Clear
End If
End If
ElseIf cell.Offset(0, 15) = 'ST' Then
cell.Clear
End If
Next cell
'Suppression des enregistrements
Plage.SpecialCells(xlCellTypeBlanks).EntireRow.Delete

En fait, j'identifie les doublons, j'efface leur numéro puis je supprime les lignes dont le numéro est blank.

Merci Gérard pour la piste des couleurs, cela m'a été grandement utile ! 🙂

Janko
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
250
Affichages
16 K
Réponses
3
Affichages
537
Réponses
4
Affichages
1 K
Retour