premetto che non sono esperto di vba, ma ho creato una macro che prima mi mette in ordine crescente i dati e poi mi colora di giallo tutte le celle che contengono un valore inferiore o uguale a 60.
a funzionare va bene, ma vorrei perfezionarla, vorrei che selezionasse in automatico tutte le celle piene fino all'ultima riga/cella
tipo istruzone Range("D3").End(xlDown).Select --- non so però dove inserire correttamente l'istruzione.
se necessario, allegherò file
spero di essere stato chiaro, e in attesa vi ringrazio
- Codice: Seleziona tutto
Sub Macro1()
'
' Macro1 Macro
'
'
Range("D1:D2").Select
ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Add2 Key:=Range("D3:D14" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Foglio1").Sort
.SetRange Range("A2:D14") ' vorrei selezionasse tutte le celle piene
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("D1:D14").Select ' vorrei che selezionasse fino all'ultima cella piena
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="=0", Formula2:="=60" ' qua utilizzasse unica istruzione con <=60
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("A1:A2").Select
End Sub