Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "B3" Then
Application.ScreenUpdating = False
Range("a5:b" & Rows.Count).ClearContents
k = Sheets(1).Range("a" & Rows.Count).End(xlUp).Row
Set fin = Sheets(1).Rows(3).Find(what:=Range("b3"), lookat:=xlWhole)
If Not fin Is Nothing Then
col = fin.Column
Range("a5:a" & k + 1) = Sheets(1).Range("a4:a" & k).Value
Range("b5:b" & k + 1) = Sheets(1).Range(Sheets(1).Cells(4, col), Sheets(1).Cells(k + 1, col)).Value
With ActiveWorkbook.Worksheets("Foglio3").Sort
.SortFields.Add Key:=Range("B5:B" & k + 1), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.SetRange Range("A5:b" & k + 1)
.Apply
End With
Range("b5:b" & k + 1).ClearContents
End If
Application.ScreenUpdating = True
End If
End Sub |