GNT sans publicité, site mobile, fonctionnalitées exclusives...

suprimer la ligne qui contien doublon

Le
pellet15
Bonjour à tous

J'ai une feuille (Base) qui a 13 colonnes et un nombre de ligne qui
varie ( 10 a 300 ou plus)
je voudrais avec une macro supprimer les lignes qui sont en double.


Merci (bonne année 2012)
Lire les 11 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #24113071
Bonjour,

Quelle est ta définition de doublon ? Est-ce que les 13 colonnes doivent être identiques ou seulement certaines colonnes ?



MichD
------------------------------------------
"pellet15" a écrit dans le message de groupe de discussion :


Bonjour à tous

J'ai une feuille (Base) qui a 13 colonnes et un nombre de ligne qui
varie ( 10 a 300 ou plus)
je voudrais avec une macro supprimer les lignes qui sont en double.


Merci (bonne année 2012)
pellet15
Le #24113221
On 29 déc, 15:02, "MichD"
Bonjour,

Quelle est ta définition de doublon ? Est-ce que les 13 colonnes doiven t être identiques ou seulement certaines colonnes ?

MichD
------------------------------------------
"pellet15"  a écrit dans le message de groupe de discussion :


Bonjour à tous

J'ai une feuille (Base) qui a 13 colonnes et un nombre de ligne qui
varie ( 10 a 300 ou plus)
je voudrais avec une macro supprimer les lignes qui sont en double.

Merci (bonne année 2012)



Bonjour MichD

Oui tous pareille sur la même ligne,
et dans mes calcule je ne doit pas avoir des répétition de mes donné.

il faut supprimer la ligne qui sont en double.

Merci
MichD
Le #24113521
Dans l'exemple suivant :

La plage des données est dans A1:Mx
La ligne 1 représente la ligne des étiquettes de colonnes
La ligne x représente la dernière ligne des données

Dans la colonne N2:Nx , par formule, il y a concaténation de toutes les cellules de chaque ligne
Un filtre élaboré est exécuté sur la colonne N1:Nx

Pour ce faire, une plage de critère est utilisée en O1:O2
Après l'exécution du filtre et les suppressions des doublons, les colonnes N et O sont supprimées.

Feuil1 représente la propriété "Name" de l'objet "Feuille" visible seulement dans l'interface
de la fenêtre d'édition de code et non le nom de l'onglet de la feuille.

'-----------------------------------------------
Sub test()
Dim DerLig As Long

On Error Resume Next
Application.ScreenUpdating = False
With Feuil1
DerLig = .Range("A65536").End(xlUp).Row
.Range("N1") = "Concaténation"
.Range("N2:N" & DerLig) = "¢&B2&C2&D2&E2&F2&G2&H2&I2&K2&L2&M2"
'Déterminer la plage de critère
.Range("O1") = ""
.Range("O2").FormulaLocal = "=Nb.Si(N1:N" & DerLig & ";N2)>=2"
'Filtre avancé sur la plage A1:Mx
With .Range("N1:N" & .Range("N65536").End(xlUp).Row)
.AdvancedFilter Action:=xlFilterInPlace, _
Criteriarange:þuil1.Range("O1:O2")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With

.ShowAllData
.Range("N:O").EntireColumn.Delete
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------


MichD
------------------------------------------
"pellet15" a écrit dans le message de groupe de discussion :


On 29 déc, 15:02, "MichD"
Bonjour,

Quelle est ta définition de doublon ? Est-ce que les 13 colonnes doivent être identiques ou seulement certaines colonnes ?

MichD
------------------------------------------
"pellet15" a écrit dans le message de groupe de discussion :


Bonjour à tous

J'ai une feuille (Base) qui a 13 colonnes et un nombre de ligne qui
varie ( 10 a 300 ou plus)
je voudrais avec une macro supprimer les lignes qui sont en double.

Merci (bonne année 2012)



Bonjour MichD

Oui tous pareille sur la même ligne,
et dans mes calcule je ne doit pas avoir des répétition de mes donné.

il faut supprimer la ligne qui sont en double.

Merci
pellet15
Le #24115011
On 29 déc, 19:18, "MichD"
Dans l'exemple suivant :

La plage des données est dans A1:Mx
La ligne 1 représente la ligne des étiquettes de colonnes
La ligne x représente la dernière ligne des données

Dans la colonne N2:Nx , par formule, il y a concaténation de toutes les cellules de chaque ligne
Un filtre élaboré est exécuté sur la colonne N1:Nx

Pour ce faire, une plage de critère est utilisée en O1:O2
Après l'exécution du filtre et les suppressions des doublons, les col onnes N et O sont supprimées.

Feuil1 représente la propriété "Name" de l'objet "Feuille" visible seulement dans l'interface
de la fenêtre d'édition de code et non le nom de l'onglet de la feuil le.

'-----------------------------------------------
Sub test()
Dim DerLig As Long

On Error Resume Next
Application.ScreenUpdating = False
With Feuil1
    DerLig = .Range("A65536").End(xlUp).Row
    .Range("N1") = "Concaténation"
    .Range("N2:N" & DerLig) = "¢&B2&C2&D2&E2&F2&G2&H2&I2&K2&L2& M2"
    'Déterminer la plage de critère
    .Range("O1") = ""
    .Range("O2").FormulaLocal = "=Nb.Si(N1:N" & DerLig & ";N2)> =2"
    'Filtre avancé sur la plage A1:Mx
    With .Range("N1:N" & .Range("N65536").End(xlUp).Row)
        .AdvancedFilter Action:=xlFilterInPlace, _
            Criteriarange:þuil1.Range("O1:O2")
        .Offset(1).Resize(.Rows.Count - 1). _
            SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With

    .ShowAllData
    .Range("N:O").EntireColumn.Delete
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------

MichD
------------------------------------------
"pellet15"  a écrit dans le message de groupe de discussion :


On 29 déc, 15:02, "MichD"








> Bonjour,

> Quelle est ta définition de doublon ? Est-ce que les 13 colonnes doiv ent être identiques ou seulement certaines colonnes ?

> MichD
> ------------------------------------------
> "pellet15"  a écrit dans le message de groupe de discussion :
>

> Bonjour à tous

> J'ai une feuille (Base) qui a 13 colonnes et un nombre de ligne qui
> varie ( 10 a 300 ou plus)
> je voudrais avec une macro supprimer les lignes qui sont en double.

> Merci (bonne année 2012)

Bonjour  MichD

Oui tous pareille sur la même ligne,
et dans mes calcule je ne doit pas avoir des répétition de mes donn é.

il faut supprimer la ligne qui sont en double.

Merci



Bonjour MichD

Cela fonctionne mais un peut trop !
je veut supprimer le double mais pas le premier...

voici les modification que j'ai apporter, quoi faire pour garder une
des deux ligne ?
J'ai juste changer le "N pour P et O pour le Q" puis effacer a la
place de supprimer colonne OetQ .

Sub test()
Dim DerLig As Long
On Error Resume Next
Application.ScreenUpdating = False
With Feuil1
DerLig = .Range("A65536").End(xlUp).Row
.Range("p1") = "Concaténation"
.Range("p2:p" & DerLig) = "¢&B2&C2&D2&E2&F2&G2&H2&I2&K2&L2&M2"
'Déterminer la plage de critère
.Range("q1") = ""
.Range("q2").FormulaLocal = "=Nb.Si(p1:p" & DerLig & ";p2)>=2"
'Filtre avancé sur la plage A1:Mx
With .Range("p1:p" & .Range("p65536").End(xlUp).Row)
.AdvancedFilter Action:=xlFilterInPlace,
Criteriarange:þuil1.Range("q1:q2")
.Offset(1).Resize(.Rows.Count -
1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.ShowAllData
.Range("p:q").EntireColumn.Clear
End With
Application.ScreenUpdating = True
End Sub


Merci
Gloops
Le #24115061
pellet15 a écrit, le 30/12/2011 16:56 :
Cela fonctionne mais un peut trop !
je veut supprimer le double mais pas le premier...



J'ai failli le dire, mais je me suis dit, non, connaissant MichD, il n'a
pas pu oublier ça ...

A ce que je me rappelle, l'astuce consiste à introduire un numéro
d'ordre entre les doublons, comme ça ensuite on peut sélectionner sur
NUMORDRE=1.

En revanche, j'ai un trou sur les modalités d'application ...

Un autre moyen consiste à passer par une extraction xml (à partir de la
version 2003 si je ne m'abuse). Là aussi, il est vrai qu'il ne suffit
pas de le dire.
Publicité
Suivre les réponses
Poster une réponse
Anonyme