Ordinazione di fogli di lavoro in base a un valore di cella (Microsoft Excel)
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 passare attraverso ogni foglio di lavoro nella cartella di lavoro e quindi esaminare la cella chiave in ogni foglio di lavoro successivo per vedere come si confronta. 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 (2890) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: