Altri problemi di ExcelTips hanno fornito modi per ordinare i fogli di lavoro nella cartella di lavoro in base al nome del foglio di lavoro. E se volessi ordinare i fogli di lavoro in base a un valore in una determinata cella di ciascun foglio di lavoro, tuttavia? Ad esempio, potresti avere una serie di fogli di lavoro che condividono lo stesso layout generale e desideri che i fogli di lavoro siano ordinati in base al valore nella cella H7 di ciascun foglio di lavoro.

L’unico modo per gestirlo è con una macro. La macro deve scorrere ogni foglio di lavoro nella cartella di lavoro e quindi controllare la cella chiave in ogni foglio di lavoro successivo per vedere come si confronta con la stessa cella in altri fogli di lavoro. Se il valore della cella è inferiore al foglio di lavoro corrente, è possibile spostare il foglio di lavoro che contiene il valore inferiore.

Sub SortWksByCell()

Dim i As Integer     Dim j As Integer

For i = 1 To Worksheets.Count         For j = i To Worksheets.Count             If UCase(Worksheets(j).Range("H7")) < _               UCase(Worksheets(i).Range("H7")) Then                 Worksheets(j).Move Before:=Worksheets(i)

End If         Next     Next End Sub

Notare l’uso del metodo Move, che esegue il movimento effettivo dei fogli di lavoro. I nomi dei fogli di lavoro non contano, solo il loro posizionamento in base al valore nella cella H7 di ciascun foglio di lavoro.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (12448) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.

Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: