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.
'------------------------------------------- Sub test() Dim Sh As Worksheet, Sh1 As Worksheet Dim Rg As Range
Set Sh = Worksheets("Feuil1") 'Nom onglet Feuille où sont les donné es Set Sh1 = Worksheets.Add
Application.ScreenUpdating = False With Sh If Not IsEmpty(.UsedRange) Then With .Range("A:M") DerLig = .Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Ro w End With Set Rg = .Range("A1:M" & DerLig) Else Exit Sub End If End With With Rg .AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Sh1.Range("A1"), Unique:=True .Clear Sh1.UsedRange.Copy .Item(1, 1) End With Application.DisplayAlerts = False Sh1.Delete Application.DisplayAlerts = True Application.ScreenUpdating = True
End Sub '-------------------------------------------
MichD ------------------------------------------
Très bien cela fonctionne ..
Gros Merci
On 1 jan, 07:57, "MichD" <michde...@hotmail.com> wrote:
Essaie ceci :
'-------------------------------------------
Sub test()
Dim Sh As Worksheet, Sh1 As Worksheet
Dim Rg As Range
Set Sh = Worksheets("Feuil1") 'Nom onglet Feuille où sont les donné es
Set Sh1 = Worksheets.Add
Application.ScreenUpdating = False
With Sh
If Not IsEmpty(.UsedRange) Then
With .Range("A:M")
DerLig = .Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Ro w
End With
Set Rg = .Range("A1:M" & DerLig)
Else
Exit Sub
End If
End With
With Rg
.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sh1.Range("A1"), Unique:=True
.Clear
Sh1.UsedRange.Copy .Item(1, 1)
End With
Application.DisplayAlerts = False
Sh1.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
'-------------------------------------------
'------------------------------------------- Sub test() Dim Sh As Worksheet, Sh1 As Worksheet Dim Rg As Range
Set Sh = Worksheets("Feuil1") 'Nom onglet Feuille où sont les donné es Set Sh1 = Worksheets.Add
Application.ScreenUpdating = False With Sh If Not IsEmpty(.UsedRange) Then With .Range("A:M") DerLig = .Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Ro w End With Set Rg = .Range("A1:M" & DerLig) Else Exit Sub End If End With With Rg .AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Sh1.Range("A1"), Unique:=True .Clear Sh1.UsedRange.Copy .Item(1, 1) End With Application.DisplayAlerts = False Sh1.Delete Application.DisplayAlerts = True Application.ScreenUpdating = True
End Sub '-------------------------------------------