OVH Cloud OVH Cloud

Doublons en trop

8 réponses
Avatar
Christian Peltier
Bonjour

J'ai une base de données avec 10 colonnes et 45000 lignes

Il y a donc 45.000 enregistrements dont 10 ou 15.000 doublons...

Je souhaite supprimer les doublons par la colone fax (colonne F)
Je cherche a le faire par le filtre elabore mais lors du filtre ...rien ne
se passe...

Comment puis je faire une base propre ?

Merci pour votre aide je calle...

Christian

8 réponses

Avatar
Philippe.R
Bonjour Christian,
Ceci convient il ?

Sub sandoubl()
'MPFE le 21/11/2004
'supprime la ligne si un doublon est trouvé
' en colonne F
Dim i As Long, j As Long, laDer As Long
laDer = Range("F65536").End(xlUp).Row
For i = 1 To laDer
For j = i + 1 To laDer
If Cells(i, 6).Value = Cells(j, 6) Then
Rows(i).EntireRow.Delete
End If
Next j
Next i
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Christian Peltier" a écrit dans le message de news:
41a0861d$0$285$
Bonjour

J'ai une base de données avec 10 colonnes et 45000 lignes

Il y a donc 45.000 enregistrements dont 10 ou 15.000 doublons...

Je souhaite supprimer les doublons par la colone fax (colonne F)
Je cherche a le faire par le filtre elabore mais lors du filtre ...rien ne se passe...

Comment puis je faire une base propre ?

Merci pour votre aide je calle...

Christian



Avatar
Jacquouille
Bonjour Philippe
Ne pense surtout pas que je t'en veuille.
Mais, en commençant par le haut, si il y a 3 lignes identiques, le fait de
supprimer la 2°, fait passer la 3° en 2° qui est déjà analysée, donc il
restera le triblond ? non?
Il me semble qu'un de mes vieux Présidents m'avait conseillé, après la
définition de Derl, de partir de celle-ci avec un pas de -1 pour éviter ces
triblonds.
Yabon?
--
Bien amicalmement,
Vivement conseillé >> http://www.excelabo.net
Jacquouille.

"Philippe.R" a écrit dans le message de news:

Bonjour Christian,
Ceci convient il ?

Sub sandoubl()
'MPFE le 21/11/2004
'supprime la ligne si un doublon est trouvé
' en colonne F
Dim i As Long, j As Long, laDer As Long
laDer = Range("F65536").End(xlUp).Row
For i = 1 To laDer
For j = i + 1 To laDer
If Cells(i, 6).Value = Cells(j, 6) Then
Rows(i).EntireRow.Delete
End If
Next j
Next i
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Christian Peltier" a écrit dans le message de news:
41a0861d$0$285$
Bonjour

J'ai une base de données avec 10 colonnes et 45000 lignes

Il y a donc 45.000 enregistrements dont 10 ou 15.000 doublons...

Je souhaite supprimer les doublons par la colone fax (colonne F)
Je cherche a le faire par le filtre elabore mais lors du filtre ...rien
ne se passe...

Comment puis je faire une base propre ?

Merci pour votre aide je calle...

Christian






Avatar
Philippe.R
Ca rassure de voir qu'il y en a qui suivent !
;o)))
Comme ci alors ?

Sub sandoubl2()
'MPFE le 21/11/2004
Dim i As Long, j As Long, laDer As Long
laDer = Range("F65536").End(xlUp).Row
For i = laDer To 1 Step -1
For j = i - 1 To 1 Step -1
If Cells(i, 6).Value = Cells(j, 6) Then
Rows(i).EntireRow.Delete
End If
Next j
Next i
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Jacquouille" a écrit dans le message de news:
%
Bonjour Philippe
Ne pense surtout pas que je t'en veuille.
Mais, en commençant par le haut, si il y a 3 lignes identiques, le fait de supprimer la 2°, fait
passer la 3° en 2° qui est déjà analysée, donc il restera le triblond ? non?
Il me semble qu'un de mes vieux Présidents m'avait conseillé, après la définition de Derl, de partir
de celle-ci avec un pas de -1 pour éviter ces triblonds.
Yabon?
--
Bien amicalmement,
Vivement conseillé >> http://www.excelabo.net
Jacquouille.

"Philippe.R" a écrit dans le message de news:

Bonjour Christian,
Ceci convient il ?

Sub sandoubl()
'MPFE le 21/11/2004
'supprime la ligne si un doublon est trouvé
' en colonne F
Dim i As Long, j As Long, laDer As Long
laDer = Range("F65536").End(xlUp).Row
For i = 1 To laDer
For j = i + 1 To laDer
If Cells(i, 6).Value = Cells(j, 6) Then
Rows(i).EntireRow.Delete
End If
Next j
Next i
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Christian Peltier" a écrit dans le message de news:
41a0861d$0$285$
Bonjour

J'ai une base de données avec 10 colonnes et 45000 lignes

Il y a donc 45.000 enregistrements dont 10 ou 15.000 doublons...

Je souhaite supprimer les doublons par la colone fax (colonne F)
Je cherche a le faire par le filtre elabore mais lors du filtre ...rien ne se passe...

Comment puis je faire une base propre ?

Merci pour votre aide je calle...

Christian










Avatar
Hubert
Bonjour,

Pour ma part, pour ce type de nettoyage, j'utilise ce qu'Excel fait vite et
bien : trier

1. Ajouter une colonne avec des numéros d'index dans le tableau
2. trier selon la colonne qui contient les éventuels doublons, "triblons",
n-blons :o)
3. Balayer en supprimant toute ligne qui ne propose pas,
dans la fameuse colonne, une nouvelle valeur. ( et toc)
* Si le ballayage se fait de haut en bas :
- Quand on supprime une ligne,
on pense à ne pas incrémenter le compteur
qui sert au balayage (*)
* Si on balaye à partir du bas, il n'y a pas de pb de compteur
4. trier en fonction des numéros insérés
5. détruire la colonne d'index

Chacune de ces actions se programme sans difficultés.

On peut ajouter un "application.screenupdateúlse"
pour faire plus joli,
une fois la phase de test terminée :o)

ouala...

Bon "codage"

Hubert B.


(*) gag du type :

Si je double le second je deviens ...
...
...
...
...
...
...
...
...
Second bien sûr
et non pas premier !
Avatar
AV
Les données sont en A:F de la feuille "BD" (A adapter)
Les doublons sont en colonne F (A adapter)
Avec le filtre élaboré (pas de boucle) :

Sub zzz()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("TEMP").Delete
Sheets.Add.Name = "TEMP"
With Sheets("BD")
.[F:F].AdvancedFilter Action:=xlFilterInPlace, Unique:=True
.[A:F].SpecialCells(xlCellTypeVisible).Copy (Sheets("TEMP").[A1])
.ShowAllData
.[A:F] = (Range("TEMP!A:F"))
End With
Sheets("TEMP").Delete
End Sub

AV
Avatar
Christian Peltier
Bonjour a tous

Et merci pour la réponse aussi rapide...

Mais excusez ma nullité mais la formule je dois la mettre ou???
Dans une macro?, en VB?
...?

merci...

Christian
"Jacquouille" a écrit dans le message de
news: %
Bonjour Philippe
Ne pense surtout pas que je t'en veuille.
Mais, en commençant par le haut, si il y a 3 lignes identiques, le fait de
supprimer la 2°, fait passer la 3° en 2° qui est déjà analysée, donc il
restera le triblond ? non?
Il me semble qu'un de mes vieux Présidents m'avait conseillé, après la
définition de Derl, de partir de celle-ci avec un pas de -1 pour éviter
ces triblonds.
Yabon?
--
Bien amicalmement,
Vivement conseillé >> http://www.excelabo.net
Jacquouille.

"Philippe.R" a écrit dans le message de news:

Bonjour Christian,
Ceci convient il ?

Sub sandoubl()
'MPFE le 21/11/2004
'supprime la ligne si un doublon est trouvé
' en colonne F
Dim i As Long, j As Long, laDer As Long
laDer = Range("F65536").End(xlUp).Row
For i = 1 To laDer
For j = i + 1 To laDer
If Cells(i, 6).Value = Cells(j, 6) Then
Rows(i).EntireRow.Delete
End If
Next j
Next i
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Christian Peltier" a écrit dans le message de news:
41a0861d$0$285$
Bonjour

J'ai une base de données avec 10 colonnes et 45000 lignes

Il y a donc 45.000 enregistrements dont 10 ou 15.000 doublons...

Je souhaite supprimer les doublons par la colone fax (colonne F)
Je cherche a le faire par le filtre elabore mais lors du filtre ...rien
ne se passe...

Comment puis je faire une base propre ?

Merci pour votre aide je calle...

Christian










Avatar
Philippe.R
Re,
Tu presses Alt + F11 simultanément, dans la fenêtre située en haut à gauche de la feuille qui vient
d'apparaître, tu repères le nom de ton classeur tu cliques droit sur le nom / insertion / module et tu y
copies le code.
Tu lanceras ensuite la macro depuis outils / macro / macros, qui s'appliquer à la feuille active.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Christian Peltier" a écrit dans le message de news:
41a0ae7f$0$282$
Bonjour a tous

Et merci pour la réponse aussi rapide...

Mais excusez ma nullité mais la formule je dois la mettre ou???
Dans une macro?, en VB?
...?

merci...

Christian
"Jacquouille" a écrit dans le message de news:
%
Bonjour Philippe
Ne pense surtout pas que je t'en veuille.
Mais, en commençant par le haut, si il y a 3 lignes identiques, le fait de supprimer la 2°, fait
passer la 3° en 2° qui est déjà analysée, donc il restera le triblond ? non?
Il me semble qu'un de mes vieux Présidents m'avait conseillé, après la définition de Derl, de partir
de celle-ci avec un pas de -1 pour éviter ces triblonds.
Yabon?
--
Bien amicalmement,
Vivement conseillé >> http://www.excelabo.net
Jacquouille.

"Philippe.R" a écrit dans le message de news:

Bonjour Christian,
Ceci convient il ?

Sub sandoubl()
'MPFE le 21/11/2004
'supprime la ligne si un doublon est trouvé
' en colonne F
Dim i As Long, j As Long, laDer As Long
laDer = Range("F65536").End(xlUp).Row
For i = 1 To laDer
For j = i + 1 To laDer
If Cells(i, 6).Value = Cells(j, 6) Then
Rows(i).EntireRow.Delete
End If
Next j
Next i
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Christian Peltier" a écrit dans le message de news:
41a0861d$0$285$
Bonjour

J'ai une base de données avec 10 colonnes et 45000 lignes

Il y a donc 45.000 enregistrements dont 10 ou 15.000 doublons...

Je souhaite supprimer les doublons par la colone fax (colonne F)
Je cherche a le faire par le filtre elabore mais lors du filtre ...rien ne se passe...

Comment puis je faire une base propre ?

Merci pour votre aide je calle...

Christian














Avatar
Christian Peltier
Merci...

C'est effectivement plus rapide qu'un par un!!!!


"Philippe.R" a écrit dans le message de news:

Re,
Tu presses Alt + F11 simultanément, dans la fenêtre située en haut à
gauche de la feuille qui vient d'apparaître, tu repères le nom de ton
classeur tu cliques droit sur le nom / insertion / module et tu y copies
le code.
Tu lanceras ensuite la macro depuis outils / macro / macros, qui
s'appliquer à la feuille active.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Christian Peltier" a écrit dans le message de news:
41a0ae7f$0$282$
Bonjour a tous

Et merci pour la réponse aussi rapide...

Mais excusez ma nullité mais la formule je dois la mettre ou???
Dans une macro?, en VB?
...?

merci...

Christian
"Jacquouille" a écrit dans le message de
news: %
Bonjour Philippe
Ne pense surtout pas que je t'en veuille.
Mais, en commençant par le haut, si il y a 3 lignes identiques, le fait
de supprimer la 2°, fait passer la 3° en 2° qui est déjà analysée, donc
il restera le triblond ? non?
Il me semble qu'un de mes vieux Présidents m'avait conseillé, après la
définition de Derl, de partir de celle-ci avec un pas de -1 pour éviter
ces triblonds.
Yabon?
--
Bien amicalmement,
Vivement conseillé >> http://www.excelabo.net
Jacquouille.

"Philippe.R" a écrit dans le message de news:

Bonjour Christian,
Ceci convient il ?

Sub sandoubl()
'MPFE le 21/11/2004
'supprime la ligne si un doublon est trouvé
' en colonne F
Dim i As Long, j As Long, laDer As Long
laDer = Range("F65536").End(xlUp).Row
For i = 1 To laDer
For j = i + 1 To laDer
If Cells(i, 6).Value = Cells(j, 6) Then
Rows(i).EntireRow.Delete
End If
Next j
Next i
End Sub

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Christian Peltier" a écrit dans le message de
news: 41a0861d$0$285$
Bonjour

J'ai une base de données avec 10 colonnes et 45000 lignes

Il y a donc 45.000 enregistrements dont 10 ou 15.000 doublons...

Je souhaite supprimer les doublons par la colone fax (colonne F)
Je cherche a le faire par le filtre elabore mais lors du filtre
...rien ne se passe...

Comment puis je faire une base propre ?

Merci pour votre aide je calle...

Christian