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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| Sub regroup2()
Application.ScreenUpdating = False
Dim f1 As Worksheet
Dim f2 As Worksheet
Set f1 = Sheets("Sheet1")
Set f2 = Sheets("RESULTAT")
f2.Cells.ClearContents
Dim i As Long
Set d = CreateObject("Scripting.Dictionary")
'**********************************************************
TblBD = f1.Range("A2:D" & f1.Range("C" & Rows.Count).End(xlUp).Row)
For i = 1 To UBound(TblBD)
X = 0
clé = TblBD(i, 2)
If TblBD(i, 3) = "S1" Then d(clé) = d(clé) + (X + 1)
Next i
f2.Range("A2").Resize(d.Count) = Application.Transpose(d.keys)
f2.Range("B2").Resize(d.Count) = Application.Transpose(d.items)
Set d2 = CreateObject("Scripting.Dictionary")
'**********************************************************
TblBD = f1.Range("A2:D" & f1.Range("C" & Rows.Count).End(xlUp).Row)
For i = 1 To UBound(TblBD)
X = 0
clé = TblBD(i, 2)
If TblBD(i, 3) = "S2" Then d2(clé) = d2(clé) + (X + 1)
Next i
f2.Range("A2").Resize(d2.Count) = Application.Transpose(d2.keys)
f2.Range("C2").Resize(d2.Count) = Application.Transpose(d2.items)
f2.Cells(1, 1) = "Référence"
f2.Cells(1, 2) = "S1"
f2.Cells(1, 3) = "S2"
f2.Cells(1, 4) = "Différence"
'Calculer différence différence
For ligne = 2 To f2.Range("A" & Rows.Count).End(xlUp).Row
f2.Cells(ligne, 4) = f2.Cells(ligne, 3) - f2.Cells(ligne, 2)
Next ligne
'supprimer ligne égal à zéro
For i = f2.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
If f2.Cells(i, 4) = 0 Then
f2.Cells(i, 1).EntireRow.Delete
End If
Next i
Application.ScreenUpdating = True
f2.Select
End Sub |
Partager