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,
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 :
1776aa99-c82f-4388-93be-2c8192502...@dp8g2000vbb.googlegroups.com...
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,
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,
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,
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 :
1776aa99-c82f-4388-93be-2c8192502...@dp8g2000vbb.googlegroups.com...
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,
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)
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" wrote:
> 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
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) = "=A2&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:=Feuil1.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 :
2765037e-1e65-4408-a209-755caf717...@z17g2000vbe.googlegroups.com...
On 29 déc, 15:02, "MichD" <michde...@hotmail.com> wrote:
> 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 :
> 1776aa99-c82f-4388-93be-2c8192502...@dp8g2000vbb.googlegroups.com...
> 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
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" wrote:
> 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
Cela fonctionne mais un peut trop !
je veut supprimer le double mais pas le premier...
Cela fonctionne mais un peut trop !
je veut supprimer le double mais pas le premier...
Cela fonctionne mais un peut trop !
je veut supprimer le double mais pas le premier...
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" wrote:
> 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
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 :
2765037e-1e65-4408-a209-755caf717...@z17g2000vbe.googlegroups.com...
On 29 déc, 15:02, "MichD" <michde...@hotmail.com> wrote:
> 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 :
> 1776aa99-c82f-4388-93be-2c8192502...@dp8g2000vbb.googlegroups.com...
> 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
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" wrote:
> 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
Si tu veux conserver le premier doublon, tu ajoutes dans la colonne P:P l e numéro de la ligne
et tu fais un tri décroissant sur cette colonne. Tu appliques le filtre élaboré et tu fais un tri
à nouveau sur la colonne P:P pour retrouver l'ordre initial des donné es. Et il y a suppression
des colonnes N, O, P
'------------------------------------
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"
With .Range("P1:P" & DerLig)
.Formula = "=Row()"
.Value = .Value
End With
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlDesce nding, Header:=xlYes
End With
'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
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlAscen ding, Header:=xlYes
End With
.Range("N:P").EntireColumn.Delete
End With
Application.ScreenUpdating = True
End Sub
'------------------------------------
MichD
------------------------------------------
"pellet15" a écrit dans le message de groupe de discussion :
On 29 déc, 19:18, "MichD" wrote:
> 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 l es 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 c olonnes N et O sont supprimées.
> Feuil1 représente la propriété "Name" de l'objet "Feuille" visibl e seulement dans l'interface
> de la fenêtre d'édition de code et non le nom de l'onglet de la feu ille.
> '-----------------------------------------------
> 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&L 2&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.Delet e
> 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" wrote:
> > Bonjour,
> > Quelle est ta définition de doublon ? Est-ce que les 13 colonnes do ivent ê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
Si tu veux conserver le premier doublon, tu ajoutes dans la colonne P:P l e numéro de la ligne
et tu fais un tri décroissant sur cette colonne. Tu appliques le filtre élaboré et tu fais un tri
à nouveau sur la colonne P:P pour retrouver l'ordre initial des donné es. Et il y a suppression
des colonnes N, O, P
'------------------------------------
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) = "=A2&B2&C2&D2&E2&F2&G2&H2&I2&K2&L2& M2"
With .Range("P1:P" & DerLig)
.Formula = "=Row()"
.Value = .Value
End With
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlDesce nding, Header:=xlYes
End With
'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:=Feuil1.Range("O1:O2")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.ShowAllData
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlAscen ding, Header:=xlYes
End With
.Range("N:P").EntireColumn.Delete
End With
Application.ScreenUpdating = True
End Sub
'------------------------------------
MichD
------------------------------------------
"pellet15" a écrit dans le message de groupe de discussion :
215f19a1-fe87-45e3-bdbc-2a66db008...@z1g2000vbx.googlegroups.com...
On 29 déc, 19:18, "MichD" <michde...@hotmail.com> wrote:
> 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 l es 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 c olonnes N et O sont supprimées.
> Feuil1 représente la propriété "Name" de l'objet "Feuille" visibl e seulement dans l'interface
> de la fenêtre d'édition de code et non le nom de l'onglet de la feu ille.
> '-----------------------------------------------
> 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) = "=A2&B2&C2&D2&E2&F2&G2&H2&I2&K2&L 2&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:=Feuil1.Range("O1:O2")
> .Offset(1).Resize(.Rows.Count - 1). _
> SpecialCells(xlCellTypeVisible).EntireRow.Delet e
> 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 :
> 2765037e-1e65-4408-a209-755caf717...@z17g2000vbe.googlegroups.com...
> On 29 déc, 15:02, "MichD" <michde...@hotmail.com> wrote:
> > Bonjour,
> > Quelle est ta définition de doublon ? Est-ce que les 13 colonnes do ivent être identiques ou seulement certaines colonnes
> > ?
> > MichD
> > ------------------------------------------
> > "pellet15" a écrit dans le message de groupe de discussion :
> > 1776aa99-c82f-4388-93be-2c8192502...@dp8g2000vbb.googlegroups.com...
> > 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) = "=A2&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:=Feuil1.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
Si tu veux conserver le premier doublon, tu ajoutes dans la colonne P:P l e numéro de la ligne
et tu fais un tri décroissant sur cette colonne. Tu appliques le filtre élaboré et tu fais un tri
à nouveau sur la colonne P:P pour retrouver l'ordre initial des donné es. Et il y a suppression
des colonnes N, O, P
'------------------------------------
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"
With .Range("P1:P" & DerLig)
.Formula = "=Row()"
.Value = .Value
End With
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlDesce nding, Header:=xlYes
End With
'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
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlAscen ding, Header:=xlYes
End With
.Range("N:P").EntireColumn.Delete
End With
Application.ScreenUpdating = True
End Sub
'------------------------------------
MichD
------------------------------------------
"pellet15" a écrit dans le message de groupe de discussion :
On 29 déc, 19:18, "MichD" wrote:
> 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 l es 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 c olonnes N et O sont supprimées.
> Feuil1 représente la propriété "Name" de l'objet "Feuille" visibl e seulement dans l'interface
> de la fenêtre d'édition de code et non le nom de l'onglet de la feu ille.
> '-----------------------------------------------
> 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&L 2&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.Delet e
> 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" wrote:
> > Bonjour,
> > Quelle est ta définition de doublon ? Est-ce que les 13 colonnes do ivent ê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
J'ai testé la macro et elle fonctionne très bien. Le hic, c'est que t u n'as pas de doublons dans cette plage de cellule
A1M15.
Tu m'as dit que ta définition d'un doublon était à l'effet qu'il do it y avoir la même chose dans toutes les cellules d'une
même ligne lorsque la comparaison est faite avec les autres lignes...
Dans la procédure suivante, j'ai seulement introduit un point d'arrêt "Stop" pour arrêter la macro. Élargis la colonne N:N et
regarde son contenu... est-ce qu'il y a 2 cellules qui soient identiques ?????????????????????????????????
'-------------------------------------------
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"
With .Range("P1:P" & DerLig)
.Formula = "=Row()"
.Value = .Value
End With
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlDesce nding, Header:=xlYes
End With
'-----------------
Stop
'-----------------
'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
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlAscen ding, Header:=xlYes
End With
.Range("N:P").EntireColumn.Delete
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------
Ceci est mon dernier message sur ce fil.
MichD
------------------------------------------
J'ai testé la macro et elle fonctionne très bien. Le hic, c'est que t u n'as pas de doublons dans cette plage de cellule
A1M15.
Tu m'as dit que ta définition d'un doublon était à l'effet qu'il do it y avoir la même chose dans toutes les cellules d'une
même ligne lorsque la comparaison est faite avec les autres lignes...
Dans la procédure suivante, j'ai seulement introduit un point d'arrêt "Stop" pour arrêter la macro. Élargis la colonne N:N et
regarde son contenu... est-ce qu'il y a 2 cellules qui soient identiques ?????????????????????????????????
'-------------------------------------------
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) = "=A2&B2&C2&D2&E2&F2&G2&H2&I2&K2&L2& M2"
With .Range("P1:P" & DerLig)
.Formula = "=Row()"
.Value = .Value
End With
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlDesce nding, Header:=xlYes
End With
'-----------------
Stop
'-----------------
'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:=Feuil1.Range("O1:O2")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.ShowAllData
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlAscen ding, Header:=xlYes
End With
.Range("N:P").EntireColumn.Delete
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------
Ceci est mon dernier message sur ce fil.
MichD
------------------------------------------
J'ai testé la macro et elle fonctionne très bien. Le hic, c'est que t u n'as pas de doublons dans cette plage de cellule
A1M15.
Tu m'as dit que ta définition d'un doublon était à l'effet qu'il do it y avoir la même chose dans toutes les cellules d'une
même ligne lorsque la comparaison est faite avec les autres lignes...
Dans la procédure suivante, j'ai seulement introduit un point d'arrêt "Stop" pour arrêter la macro. Élargis la colonne N:N et
regarde son contenu... est-ce qu'il y a 2 cellules qui soient identiques ?????????????????????????????????
'-------------------------------------------
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"
With .Range("P1:P" & DerLig)
.Formula = "=Row()"
.Value = .Value
End With
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlDesce nding, Header:=xlYes
End With
'-----------------
Stop
'-----------------
'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
With Range("A1:P" & DerLig)
.Sort key1:=.Item(2, .Columns.Count), order1:=xlAscen ding, Header:=xlYes
End With
.Range("N:P").EntireColumn.Delete
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------
Ceci est mon dernier message sur ce fil.
MichD
------------------------------------------