Hmm, I think this may be what you want. If so, disregards post #7.

Put this code at the end of your sub. The order of the colors in Sheet 1 Column I doesn't matter.

dt = ws1.Range("J1").Value
If IsDate(dt) Then
    For Each Cell In ws1.Columns(9).SpecialCells(2)
        Set c = ws2.Rows(1).Find(Cell.Value)
        If Not c Is Nothing Then
        If ws2.Cells(Rows.Count, c.Column).End(3).Row = 1 Then
            ws2.Cells(2, c.Column).Value = dt
            ws2.Cells(2, c.Column + 1).Value = Cell.Offset(0, 1).Value
        End If
        End If
    Next
End If