Se si dispone di un foglio di calcolo dove la tabella include dati in celle con sfondo colorato diverso, potrebbe essere utile per ordinare quelle cellule di colori delle celle. Excel 2003 non ha una funzionalità che consente di ordinare di colore della cella. Tuttavia, esiste una soluzione alternativa: è possibile inserire un Visual Basic Applications Edition (VBA) macro per eseguire il compito per voi. VBA è un linguaggio di programmazione appositamente progettato per adattare le applicazioni di Office in base alle esigenze.
Istruzioni
1
Premere "Alt e"F11"insieme dal foglio di lavoro Excel che si desidera ordinare. Verrà aperto l'Editor di Visual Basic (VBE).
2
Fare clic su "Inserisci" e quindi fare clic su "Modulo".
3
Tagliare e incollare il codice seguente nella finestra vuota:
Sub SortByColor()
On Error GoTo SortByColor_Err
Dim sRangeAddress As String
Dim sStartCell As String
Dim sEndCell As String
Dim rngSort As Range
Dim rng As Range
Application.ScreenUpdating = False
sStartCell = InputBox("Enter the cell address of the " & _
"top cell in the range to be sorted by color" & _
Chr(13) & "i.e. 'A1'", "Enter Cell Address")
If sStartCell > "" Then
sEndCell = Range(sStartCell).End(xlDown).Address
Range(sStartCell).EntireColumn.Insert
Set rngSort = Range(sStartCell, sEndCell)
For Each rng In rngSort
rng.Value = rng.Offset(0, 1).Interior.ColorIndex
Next
Range(sStartCell).Sort Key1:=Range(sStartCell), _
Order1:=xlAscending, Header:=xlNo, _
Orientation:=xlTopToBottom
Range(sStartCell).EntireColumn.Delete
End If
SortByColor_Exit:
Application.ScreenUpdating = True
Set rngSort = Nothing
Exit Sub
SortByColor_Err:
MsgBox Err.Number & ": " & Err.Description, _
vbOKOnly, "SortByColor"
Resume SortByColor_Exit
End Sub
4
Premere "F5" per eseguire la macro. La macro vi chiederà l'inizio dell'intervallo che si desidera ordinare per colore: inserire la cella superiore sinistra nell'intervallo.
Consigli & Avvertenze
- La macro precedente è per l'ordinamento dei dati che non dispone di una riga di intestazione. Se i dati dispone di una riga di intestazione nella riga 1, modificare "intestazione: = xlNo" a "intestazione: = xlYes."