1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| Sub SpLignesIdentiques()
'Déclaration des variables
Dim Sh_1 As Worksheet, Sh_2 As Worksheet
Dim DerLig_Sh1 As Long, DerLig_Sh2 As Long, i As Long
Dim a As Variant
Dim MonDico As Object
Application.ScreenUpdating = False
Set Sh_1 = Sheets("BD")
Set Sh_2 = Sheets("Restit")
Sh_2.Cells.ClearContents 'effacement des résultats précédents
'récupération des données
DerLig_Sh1 = Sh_1.Range("A2").CurrentRegion.Rows.Count + 1
a = Sh_1.Range("A2:F" & DerLig_Sh1).Value
Set MonDico = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(a) - 1
temp = a(i, 1) & "|" & a(i, 2) & "|" & a(i, 3) & "|" & a(i, 4) & "|" & a(i, 6)
MonDico(temp) = MonDico(temp) + 1
Next i
'Transposition dans MonDico
If MonDico.Count > 0 Then Sh_2.Range("A1").Resize(MonDico.Count, 1) = Application.Transpose(MonDico.keys)
'conversion en colonnes
Sh_2.Select
DerLig_f2 = Range("A1").CurrentRegion.Rows.Count
Range("A1:A" & DerLig_f2).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1)), TrailingMinusNumbers:=True
'Libération de la mémoire
Set Sh_1 = Nothing
Set Sh_2 = Nothing
End Sub |
Partager