J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro créé
par Jacques Chaussard :
Sub doublon()
ActiveSheet.UsedRange.EntireRow.Sort Key1:=ActiveSheet.UsedRange.Cells(1)
lin = Columns(1).Find("*", , , , , xlPrevious).Row
encore:
keep = False
For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column
If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True
Next col
If keep = False Then Rows(lin).Delete
lin = lin - 1
If lin > 1 Then GoTo encore
End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je
rentre dans le debogage. Avez vous une solution autre que le filtre élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nico
J'ai également pris la macro de Frédéric Sigonneau :
Sub SupprLignesIdentiques() 'fs, mpfe Dim cell As Range, CellsToSuppr As Range, derLi As Long
Application.ScreenUpdating = False derLi = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To derLi If Cells(i, 1) = Cells(i + 1, 1) Then If CellsToSuppr Is Nothing Then Set CellsToSuppr = Cells(i + 1, 1) Else: Set CellsToSuppr = Union(CellsToSuppr, Cells(i + 1, 1)) End If End If Next i 'suppression de toutes les lignes identiques 'trouvées en une seule passe If Not CellsToSuppr Is Nothing Then CellsToSuppr.EntireRow.Delete
End Sub
Mais ca ne fonctionne pas non plus, il faut dire que je peux trés bien avoir 2, 3 ou 4 lignes exactement identique et n'importe ou dans le tableau.
Nico
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro créé
par Jacques Chaussard : Sub doublon() ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1) lin = Columns(1).Find("*", , , , , xlPrevious).Row encore: keep = False For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True Next col If keep = False Then Rows(lin).Delete lin = lin - 1 If lin > 1 Then GoTo encore End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je rentre dans le debogage. Avez vous une solution autre que le filtre élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Merci
Nico
J'ai également pris la macro de Frédéric Sigonneau :
Sub SupprLignesIdentiques()
'fs, mpfe
Dim cell As Range, CellsToSuppr As Range, derLi As Long
Application.ScreenUpdating = False
derLi = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To derLi
If Cells(i, 1) = Cells(i + 1, 1) Then
If CellsToSuppr Is Nothing Then
Set CellsToSuppr = Cells(i + 1, 1)
Else: Set CellsToSuppr = Union(CellsToSuppr, Cells(i + 1, 1))
End If
End If
Next i
'suppression de toutes les lignes identiques
'trouvées en une seule passe
If Not CellsToSuppr Is Nothing Then CellsToSuppr.EntireRow.Delete
End Sub
Mais ca ne fonctionne pas non plus, il faut dire que je peux trés bien avoir
2, 3 ou 4 lignes exactement identique et n'importe ou dans le tableau.
Nico
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis
est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent
supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro
créé
par Jacques Chaussard :
Sub doublon()
ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1)
lin = Columns(1).Find("*", , , , , xlPrevious).Row
encore:
keep = False
For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column
If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True
Next col
If keep = False Then Rows(lin).Delete
lin = lin - 1
If lin > 1 Then GoTo encore
End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je
rentre dans le debogage. Avez vous une solution autre que le filtre
élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
J'ai également pris la macro de Frédéric Sigonneau :
Sub SupprLignesIdentiques() 'fs, mpfe Dim cell As Range, CellsToSuppr As Range, derLi As Long
Application.ScreenUpdating = False derLi = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To derLi If Cells(i, 1) = Cells(i + 1, 1) Then If CellsToSuppr Is Nothing Then Set CellsToSuppr = Cells(i + 1, 1) Else: Set CellsToSuppr = Union(CellsToSuppr, Cells(i + 1, 1)) End If End If Next i 'suppression de toutes les lignes identiques 'trouvées en une seule passe If Not CellsToSuppr Is Nothing Then CellsToSuppr.EntireRow.Delete
End Sub
Mais ca ne fonctionne pas non plus, il faut dire que je peux trés bien avoir 2, 3 ou 4 lignes exactement identique et n'importe ou dans le tableau.
Nico
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro créé
par Jacques Chaussard : Sub doublon() ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1) lin = Columns(1).Find("*", , , , , xlPrevious).Row encore: keep = False For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True Next col If keep = False Then Rows(lin).Delete lin = lin - 1 If lin > 1 Then GoTo encore End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je rentre dans le debogage. Avez vous une solution autre que le filtre élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Merci
Nico
Ardus Petus
Le fltre élaboré est (au moins) aussi costaud qu'un tri!!!
Cordialement -- AP
"Nico" a écrit dans le message de news:
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro créé
par Jacques Chaussard : Sub doublon() ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1) lin = Columns(1).Find("*", , , , , xlPrevious).Row encore: keep = False For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True Next col If keep = False Then Rows(lin).Delete lin = lin - 1 If lin > 1 Then GoTo encore End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je rentre dans le debogage. Avez vous une solution autre que le filtre élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Merci
Nico
Le fltre élaboré est (au moins) aussi costaud qu'un tri!!!
Cordialement
--
AP
"Nico" <nico.loureiro@wanadoo.fr> a écrit dans le message de
news:Ou9MaUTRGHA.4384@tk2msftngp13.phx.gbl...
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis
est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent
supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro
créé
par Jacques Chaussard :
Sub doublon()
ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1)
lin = Columns(1).Find("*", , , , , xlPrevious).Row
encore:
keep = False
For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column
If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True
Next col
If keep = False Then Rows(lin).Delete
lin = lin - 1
If lin > 1 Then GoTo encore
End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je
rentre dans le debogage. Avez vous une solution autre que le filtre
élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Le fltre élaboré est (au moins) aussi costaud qu'un tri!!!
Cordialement -- AP
"Nico" a écrit dans le message de news:
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro créé
par Jacques Chaussard : Sub doublon() ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1) lin = Columns(1).Find("*", , , , , xlPrevious).Row encore: keep = False For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True Next col If keep = False Then Rows(lin).Delete lin = lin - 1 If lin > 1 Then GoTo encore End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je rentre dans le debogage. Avez vous une solution autre que le filtre élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Merci
Nico
Ardus Petus
La macro de Frédéric est nettement plus performante
-- AP
"Nico" a écrit dans le message de news:
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro créé
par Jacques Chaussard : Sub doublon() ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1) lin = Columns(1).Find("*", , , , , xlPrevious).Row encore: keep = False For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True Next col If keep = False Then Rows(lin).Delete lin = lin - 1 If lin > 1 Then GoTo encore End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je rentre dans le debogage. Avez vous une solution autre que le filtre élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Merci
Nico
La macro de Frédéric est nettement plus performante
--
AP
"Nico" <nico.loureiro@wanadoo.fr> a écrit dans le message de
news:Ou9MaUTRGHA.4384@tk2msftngp13.phx.gbl...
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis
est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent
supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro
créé
par Jacques Chaussard :
Sub doublon()
ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1)
lin = Columns(1).Find("*", , , , , xlPrevious).Row
encore:
keep = False
For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column
If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True
Next col
If keep = False Then Rows(lin).Delete
lin = lin - 1
If lin > 1 Then GoTo encore
End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je
rentre dans le debogage. Avez vous une solution autre que le filtre
élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
La macro de Frédéric est nettement plus performante
-- AP
"Nico" a écrit dans le message de news:
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro créé
par Jacques Chaussard : Sub doublon() ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1) lin = Columns(1).Find("*", , , , , xlPrevious).Row encore: keep = False For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True Next col If keep = False Then Rows(lin).Delete lin = lin - 1 If lin > 1 Then GoTo encore End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je rentre dans le debogage. Avez vous une solution autre que le filtre élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Merci
Nico
Youky
Ca doit le faire sans problème, place toi sur ta feuille et lance cette macro Youky Sub SuppLigneDoublons() derlig = [A65536].End(xlUp).Row Range("A1:A" & derlig).AdvancedFilter Action:=xlFilterInPlace, Unique:=True For k = 2 To derlig If Rows(k).Hidden = True Then Rows(k).Delete: k = k - 1 Next ActiveSheet.ShowAllData End Sub
"Nico" a écrit dans le message de news:
J'ai également pris la macro de Frédéric Sigonneau :
Sub SupprLignesIdentiques() 'fs, mpfe Dim cell As Range, CellsToSuppr As Range, derLi As Long
Application.ScreenUpdating = False derLi = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To derLi If Cells(i, 1) = Cells(i + 1, 1) Then If CellsToSuppr Is Nothing Then Set CellsToSuppr = Cells(i + 1, 1) Else: Set CellsToSuppr = Union(CellsToSuppr, Cells(i + 1, 1)) End If End If Next i 'suppression de toutes les lignes identiques 'trouvées en une seule passe If Not CellsToSuppr Is Nothing Then CellsToSuppr.EntireRow.Delete
End Sub
Mais ca ne fonctionne pas non plus, il faut dire que je peux trés bien avoir 2, 3 ou 4 lignes exactement identique et n'importe ou dans le tableau.
Nico
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro créé
par Jacques Chaussard : Sub doublon() ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1) lin = Columns(1).Find("*", , , , , xlPrevious).Row encore: keep = False For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True Next col If keep = False Then Rows(lin).Delete lin = lin - 1 If lin > 1 Then GoTo encore End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je rentre dans le debogage. Avez vous une solution autre que le filtre élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Merci
Nico
Ca doit le faire sans problème, place toi sur ta feuille et lance cette
macro
Youky
Sub SuppLigneDoublons()
derlig = [A65536].End(xlUp).Row
Range("A1:A" & derlig).AdvancedFilter Action:=xlFilterInPlace,
Unique:=True
For k = 2 To derlig
If Rows(k).Hidden = True Then Rows(k).Delete: k = k - 1
Next
ActiveSheet.ShowAllData
End Sub
"Nico" <nico.loureiro@wanadoo.fr> a écrit dans le message de news:
e3PxWjTRGHA.4956@TK2MSFTNGP09.phx.gbl...
J'ai également pris la macro de Frédéric Sigonneau :
Sub SupprLignesIdentiques()
'fs, mpfe
Dim cell As Range, CellsToSuppr As Range, derLi As Long
Application.ScreenUpdating = False
derLi = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To derLi
If Cells(i, 1) = Cells(i + 1, 1) Then
If CellsToSuppr Is Nothing Then
Set CellsToSuppr = Cells(i + 1, 1)
Else: Set CellsToSuppr = Union(CellsToSuppr, Cells(i + 1, 1))
End If
End If
Next i
'suppression de toutes les lignes identiques
'trouvées en une seule passe
If Not CellsToSuppr Is Nothing Then CellsToSuppr.EntireRow.Delete
End Sub
Mais ca ne fonctionne pas non plus, il faut dire que je peux trés bien
avoir
2, 3 ou 4 lignes exactement identique et n'importe ou dans le tableau.
Nico
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis
est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent
supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro
créé
par Jacques Chaussard :
Sub doublon()
ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1)
lin = Columns(1).Find("*", , , , , xlPrevious).Row
encore:
keep = False
For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column
If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True
Next col
If keep = False Then Rows(lin).Delete
lin = lin - 1
If lin > 1 Then GoTo encore
End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je
rentre dans le debogage. Avez vous une solution autre que le filtre
élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.
Ca doit le faire sans problème, place toi sur ta feuille et lance cette macro Youky Sub SuppLigneDoublons() derlig = [A65536].End(xlUp).Row Range("A1:A" & derlig).AdvancedFilter Action:=xlFilterInPlace, Unique:=True For k = 2 To derlig If Rows(k).Hidden = True Then Rows(k).Delete: k = k - 1 Next ActiveSheet.ShowAllData End Sub
"Nico" a écrit dans le message de news:
J'ai également pris la macro de Frédéric Sigonneau :
Sub SupprLignesIdentiques() 'fs, mpfe Dim cell As Range, CellsToSuppr As Range, derLi As Long
Application.ScreenUpdating = False derLi = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To derLi If Cells(i, 1) = Cells(i + 1, 1) Then If CellsToSuppr Is Nothing Then Set CellsToSuppr = Cells(i + 1, 1) Else: Set CellsToSuppr = Union(CellsToSuppr, Cells(i + 1, 1)) End If End If Next i 'suppression de toutes les lignes identiques 'trouvées en une seule passe If Not CellsToSuppr Is Nothing Then CellsToSuppr.EntireRow.Delete
End Sub
Mais ca ne fonctionne pas non plus, il faut dire que je peux trés bien avoir 2, 3 ou 4 lignes exactement identique et n'importe ou dans le tableau.
Nico
Bonsoir,
J'ai une BD qui peut aller jusqu'à 50000 lignes et 40 colonnes le soucis est
que j'ai bcp de lignes identiques. Je souhaiterais par consequent supprimer
toutes les lignes en doublons.
Je suis evidemment aller chez disciplus et me suis inspiré de la macro créé
par Jacques Chaussard : Sub doublon() ActiveSheet.UsedRange.EntireRow.Sort Key1:¬tiveSheet.UsedRange.Cells(1) lin = Columns(1).Find("*", , , , , xlPrevious).Row encore: keep = False For col = 1 To Rows(lin).Find("*", , , , , xlPrevious).Column If Cells(lin, col) <> Cells(lin - 1, col) Then keep = True Next col If keep = False Then Rows(lin).Delete lin = lin - 1 If lin > 1 Then GoTo encore End Sub
Mais ca ne fonctionne pas, soit ma ligne de titre bouge, soit parfois je rentre dans le debogage. Avez vous une solution autre que le filtre élaboré
car j'ai peur qu'il ne soit pas assez costaud pour ce gros tableau.