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
| Sub regroup()
Application.ScreenUpdating = False
Dim w As Worksheet
Dim f2 As Worksheet
Set f2 = Sheets("Synthèse")
Dim derlig As Long
Dim lig As Long
derlig = f2.Cells(Rows.Count, 1).End(xlUp).Row
If derlig > 16 Then f2.Range(f2.Cells(17, "A"), f2.Cells(derlig, "L")).ClearContents
Dim i As Long
Set d = CreateObject("Scripting.Dictionary")
For Each w In ThisWorkbook.Worksheets
On Error Resume Next
If w.Name <> "Synthèse" Then
TblBD = w.Range("A17:I" & w.Range("A" & Rows.Count).End(xlUp).Row)
For i = 1 To UBound(TblBD)
If TblBD(i, 8) <> "Close" And TblBD(i, 8) <> "Annulée" Then
clé = TblBD(i, 1) & "|" & TblBD(i, 2) & "|" & TblBD(i, 3) & "|" & TblBD(i, 4) & "|" & TblBD(i, 5) & "|" & TblBD(i, 6) & "|" & CDate(TblBD(i, 7)) & "|" & TblBD(i, 8) & "|" & TblBD(i, 9) & "|" & "" & "|" & w.Name & "|" & (i + 16)
d(clé) = d(clé)
End If
Next i
End If
Next w
f2.Range("A17").Resize(d.Count) = Application.Transpose(d.keys)
Application.DisplayAlerts = False
f2.Range("A17").Resize(d.Count).TextToColumns Other:=1, DataType:=xlDelimited, OtherChar:="|"
Application.ScreenUpdating = True
End Sub |
Partager