bonjour le forum
J'essaie d'utiliser cette macro pour eliminer les doublons d'une plage de données(A2:E500), mais elle ne trie que la colonne A et B qu'elle recopie en G.
que faut-il rajouter pour quelle trie aussi les colonnes C,D,E
merci
Sub doublons()
'
' doublons Macro
' Macro enregistrée le 24/10/2010 par jacky
'
Dim monDico As Object
Dim zone As Excel.Range, curCell As Excel.Range
Set monDico = CreateObject("Scripting.Dictionary")
With ThisWorkbook.Sheets("Feuil1")
'récupérer la zone de cellule de la colonne A
Set zone = .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'récupérer la zone de cellule de la colonne B
Set zone = .Range("B2:B" & .Range("B" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'récupérer la zone de cellule de la colonne C
Set zone = .Range("C2:C" & .Range("C" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'récupérer la zone de cellule de la colonne D
Set zone = .Range("D2😀" & .Range("D" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'récupérer la zone de cellule de la colonne E
Set zone = .Range("E2:E" & .Range("E" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'afficher en colonne C le résultat
.Range("G2").Resize(monDico.Count, 1).Value = WorksheetFunction.Transpose(monDico.Items)
End With
Set monDico = Nothing
End Sub
J'essaie d'utiliser cette macro pour eliminer les doublons d'une plage de données(A2:E500), mais elle ne trie que la colonne A et B qu'elle recopie en G.
que faut-il rajouter pour quelle trie aussi les colonnes C,D,E
merci
Sub doublons()
'
' doublons Macro
' Macro enregistrée le 24/10/2010 par jacky
'
Dim monDico As Object
Dim zone As Excel.Range, curCell As Excel.Range
Set monDico = CreateObject("Scripting.Dictionary")
With ThisWorkbook.Sheets("Feuil1")
'récupérer la zone de cellule de la colonne A
Set zone = .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'récupérer la zone de cellule de la colonne B
Set zone = .Range("B2:B" & .Range("B" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'récupérer la zone de cellule de la colonne C
Set zone = .Range("C2:C" & .Range("C" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'récupérer la zone de cellule de la colonne D
Set zone = .Range("D2😀" & .Range("D" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'récupérer la zone de cellule de la colonne E
Set zone = .Range("E2:E" & .Range("E" & .Rows.Count).End(xlUp).Row)
'boucler sur chaque cellule de la zone
For Each curCell In zone.Cells
'essayer d'ajouter l'élément au dictionnaire (il n'accepte pas les doublons)
On Error Resume Next
monDico.Add curCell.Value, curCell.Value
On Error GoTo 0
Next curCell
'afficher en colonne C le résultat
.Range("G2").Resize(monDico.Count, 1).Value = WorksheetFunction.Transpose(monDico.Items)
End With
Set monDico = Nothing
End Sub