OVH Cloud OVH Cloud

Supprime doublons ou plutôt, enfin....

3 réponses
Avatar
tip.tiptop
Bonsoir,

En partant des lignes de codes ci-dessous j'aimerais pouvoir les modifier
pour, non pas supprimer les doublons, mais plutôt, pouvoir garder seulement
les lignes qui apparaissent une seule fois.
Exemple
avant exécution du code j'ai:
Champ1 Champ2 Champ3 Champ4
Toto albert 12/12/2005 homme
martin maurice 10/09/2004 homme
renée lydie 04/04/2002 femme
julia berenice 02/01/2003 femme
Toto albert 12/12/2005 homme
renée lydie 04/04/2002 femme


Le code devrait pouvoir identifier que toto et renée sont des doublons. Donc
suppression des ces 4 lignes
pour obtenir me garder seulement les lignes qui apparaissent une seule fois.

Comment procéder??????????????????????

Après exécution du code:
Champ1 Champ2 Champ3 Champ4
martin maurice 10/09/2004 homme
julia berenice 02/01/2003 femme



Sub Purge()
With Application
.ScreenUpdating = False
.DisplayAlerts = False

End With
On Error Resume Next
Sheets.Add.Name = "Temp"
[Tri!A1].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=[Temp!A1], unique:=True
[Tri!A1].CurrentRegion.ClearContents
[A1].CurrentRegion.Copy ([Tri!A1])
Sheets("Tri").Select
Sheets("Temp").Delete
Application.DisplayAlerts = True
End Sub

3 réponses

Avatar
JB
Bonjour,

Voir exemple en PJ: http://cjoint.com/?iDgI1rvCS4

JB

Bonsoir,

En partant des lignes de codes ci-dessous j'aimerais pouvoir les modifier
pour, non pas supprimer les doublons, mais plutôt, pouvoir garder seule ment
les lignes qui apparaissent une seule fois.
Exemple
avant exécution du code j'ai:
Champ1 Champ2 Champ3 Champ4
Toto albert 12/12/2005 homme
martin maurice 10/09/2004 homme
renée lydie 04/04/2002 femme
julia berenice 02/01/2003 femme
Toto albert 12/12/2005 homme
renée lydie 04/04/2002 femme


Le code devrait pouvoir identifier que toto et renée sont des doublons. Donc
suppression des ces 4 lignes
pour obtenir me garder seulement les lignes qui apparaissent une seule fo is.

Comment procéder??????????????????????

Après exécution du code:
Champ1 Champ2 Champ3 Champ4
martin maurice 10/09/2004 homme
julia berenice 02/01/2003 femme



Sub Purge()
With Application
.ScreenUpdating = False
.DisplayAlerts = False

End With
On Error Resume Next
Sheets.Add.Name = "Temp"
[Tri!A1].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=[Temp!A1], unique:=True
[Tri!A1].CurrentRegion.ClearContents
[A1].CurrentRegion.Copy ([Tri!A1])
Sheets("Tri").Select
Sheets("Temp").Delete
Application.DisplayAlerts = True
End Sub


Avatar
JB
Suppression:

http://cjoint.com/?iDib2nyUaB

Critère:
=SOMMEPROD(($A$2:$A$100¢)*($B$2:$B$100²))>1

Sub supprime()
Range("A1:B1000").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:= _
Range("E1:E2"), Unique:úlse
Range("_FilterDataBase").Offset(1,
0).Resize(Range("_FilterDataBase"). _
Rows.Count - 1).SpecialCells(xlCellTypeVisible).Delete
Shift:=xlUp
ActiveSheet.ShowAllData
End Sub

JB

Bonsoir,

En partant des lignes de codes ci-dessous j'aimerais pouvoir les modifier
pour, non pas supprimer les doublons, mais plutôt, pouvoir garder seule ment
les lignes qui apparaissent une seule fois.
Exemple
avant exécution du code j'ai:
Champ1 Champ2 Champ3 Champ4
Toto albert 12/12/2005 homme
martin maurice 10/09/2004 homme
renée lydie 04/04/2002 femme
julia berenice 02/01/2003 femme
Toto albert 12/12/2005 homme
renée lydie 04/04/2002 femme


Le code devrait pouvoir identifier que toto et renée sont des doublons. Donc
suppression des ces 4 lignes
pour obtenir me garder seulement les lignes qui apparaissent une seule fo is.

Comment procéder??????????????????????

Après exécution du code:
Champ1 Champ2 Champ3 Champ4
martin maurice 10/09/2004 homme
julia berenice 02/01/2003 femme



Sub Purge()
With Application
.ScreenUpdating = False
.DisplayAlerts = False

End With
On Error Resume Next
Sheets.Add.Name = "Temp"
[Tri!A1].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=[Temp!A1], unique:=True
[Tri!A1].CurrentRegion.ClearContents
[A1].CurrentRegion.Copy ([Tri!A1])
Sheets("Tri").Select
Sheets("Temp").Delete
Application.DisplayAlerts = True
End Sub


Avatar
tip.tiptop
Ca marche enfin presque comme je voudrais.

La MEFC est une fonction intéressante mais fonctionne pas pour un test sur
un tableau qui comporte environ 40 colonnes

Peut être existe il d'autres solutions, ou tout simplement je m'y prend mal?

Si ta solution peut marcher sur un tableau qui peut comporter jusqu'à 10 000
lignes et 40 colonnes je suis très intéressé pour que tu me dise comment
procéder.

"tip.tiptop" a écrit dans le message de news:
44f35324$0$31271$
Bonsoir,

En partant des lignes de codes ci-dessous j'aimerais pouvoir les modifier
pour, non pas supprimer les doublons, mais plutôt, pouvoir garder
seulement les lignes qui apparaissent une seule fois.
Exemple
avant exécution du code j'ai:
Champ1 Champ2 Champ3 Champ4
Toto albert 12/12/2005 homme
martin maurice 10/09/2004 homme
renée lydie 04/04/2002 femme
julia berenice 02/01/2003 femme
Toto albert 12/12/2005 homme
renée lydie 04/04/2002 femme


Le code devrait pouvoir identifier que toto et renée sont des doublons.
Donc suppression des ces 4 lignes
pour obtenir me garder seulement les lignes qui apparaissent une seule
fois.

Comment procéder??????????????????????

Après exécution du code:
Champ1 Champ2 Champ3 Champ4
martin maurice 10/09/2004 homme
julia berenice 02/01/2003 femme



Sub Purge()
With Application
.ScreenUpdating = False
.DisplayAlerts = False

End With
On Error Resume Next
Sheets.Add.Name = "Temp"
[Tri!A1].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=[Temp!A1], unique:=True
[Tri!A1].CurrentRegion.ClearContents
[A1].CurrentRegion.Copy ([Tri!A1])
Sheets("Tri").Select
Sheets("Temp").Delete
Application.DisplayAlerts = True
End Sub