Come ordinare i fogli di lavoro in Excel utilizzando VBA (in ordine alfabetico)

Se lavori con molti fogli di lavoro in Excel, saprai che la loro gestione può diventare un problema.

Una volta che hai più di un paio di fogli di lavoro, devi organizzarli manualmente.

Quanto sarebbe facile se ci fosse stato un modo per ordinare rapidamente i fogli di lavoro in Excel.

Anche se non esiste un modo integrato per farlo, può essere fatto (facilmente) usando VBA.

In questo tutorial, ti fornirò il codice e i passaggi esatti che devi seguire per ordinare i fogli di lavoro in Excel.

Puoi modificare il codice per ordinare i fogli di lavoro in ordine crescente o decrescente.

Codice VBA per ordinare i fogli di lavoro in Excel

Di seguito è riportato il codice che ordinerà i fogli di lavoro in ordine alfabetico non appena lo eseguirai.

Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If UCase(Sheets(j). Name) < UCase(Sheets(i).Name) Then Sheets(j).Sposta prima:=Sheets(i) End If Next j Next i Application.ScreenUpdating = True End Sub

Quanto sopra è un semplice codice che utilizza i cicli For Next per analizzare ciascun foglio di lavoro rispetto a tutti i fogli di lavoro.

Confronta il nome di un foglio di lavoro con tutti i fogli di lavoro e lo sposta in base al suo nome in ordine alfabetico.

Quindi passa al foglio di lavoro successivo e quindi lo confronta con tutti i fogli di lavoro.

Questo processo viene ripetuto per tutti i fogli di lavoro e il risultato finale è un ordine del foglio di lavoro ordinato in ordine alfabetico.

Alcune cose importanti da sapere su questo codice:

  1. La funzione UCase viene utilizzata per assicurarsi che le lettere minuscole e maiuscole non vengano trattate in modo diverso.
  2. Il valore di Application.ScreenUpdating è impostato su False all'inizio del codice e modificato in True alla fine del codice. Ciò garantisce che mentre il codice è in esecuzione, non lo vedrai accadere sullo schermo. Questo aiuta anche ad accelerare l'esecuzione del codice.

Se vuoi ordinare i fogli di lavoro in ordine decrescente, devi solo cambiare il segno (maggiore di).

Il codice seguente ordinerebbe i fogli di lavoro in ordine decrescente:

'Questo codice ordinerà i fogli di lavoro in ordine alfabetico Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If UCase(Sheets(j).Name) > UCase(Sheets(i).Name) Then Sheets(j).Sposta prima:=Sheets(i) End If Next j Next i Application.ScreenUpdating = True End Sub

Puoi anche dare all'utente la possibilità di scegliere se desidera ordinare in ordine crescente/decrescente.

Il codice seguente mostrerebbe una finestra di messaggio e l'utente può selezionare l'ordine da ordinare.

Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer Dim SortOrder As VbMsgBoxResult SortOrder = MsgBox("Seleziona Sì per ordine crescente e No per ordine decrescente", vbYesNoCancel) ShCount For = Fogli i = 1 a ShCount - 1 For j = i + 1 a ShCount If SortOrder = vbYes Then If UCase(Sheets(j).Name) UCase(Sheets(i).Name) Then Sheets(j).Sposta prima:=Sheets (i) End If End If Next j Next i Application.ScreenUpdating = True End Sub

Il codice sopra quando viene eseguito mostra un messaggio come mostrato di seguito. Ordina in base alla selezione (Sì per Crescente e No per Decrescente).

Se fai clic su Annulla, il codice si interrompe e non succede nulla.

Nota: l'ordinamento non può essere annullato. Nel caso in cui desideri mantenere anche l'ordine originale, crea una copia della cartella di lavoro.

Una parola di cautela: Il codice sopra funziona nella maggior parte dei casi. Un'area in cui ti darà il risultato sbagliato è quando hai nomi di schede come Q12021-2022, Q22021-2022, Q12021-2022, Q22021-2022. Idealmente, vorrai che tutte le schede per gli stessi anni siano insieme, ma non sarà fatto poiché Q12021-2022 verrà posizionato prima di Q22021-2022.

Dove inserire il codice VBA

Excel ha un backend VBA chiamato editor VBA.

Devi copiare e incollare il codice VBA nella finestra del codice del modulo VB Editor.

Ecco i passaggi per farlo:

  1. Fare clic sulla scheda "Sviluppatore". (Non riesci a vedere la scheda sviluppatore? Fai clic qui per sapere come ottenerla).
  2. Fare clic sull'opzione Visual Basic. Questo aprirà l'editor VB nel backend.
  3. Nel riquadro Project Explorer nell'editor VB, fare clic con il pulsante destro del mouse su qualsiasi oggetto per la cartella di lavoro in cui si desidera inserire il codice. (Se non vedi Esplora progetti, vai alla scheda "Visualizza" e fai clic su "Esplora progetti".)
  4. Vai su Inserisci e fai clic su Modulo. Questo inserirà un oggetto modulo per la tua cartella di lavoro.
  5. Copia e incolla il codice nella finestra del modulo.

Come eseguire il codice VBA

In Excel esistono vari modi per eseguire il codice VBA.

È possibile eseguire il codice direttamente dall'editor di Visual Basic (chiamato anche VB Editor).

Puoi inserire un pulsante o una forma nel foglio di lavoro e assegnargli la macro. Quando fai clic sul pulsante, la macro verrà eseguita istantaneamente.

Puoi anche aggiungere la macro alla barra di accesso rapido (QAT). Ora ogni volta che devi ordinare le schede del foglio di lavoro, puoi semplicemente fare clic sull'icona del codice macro nel QAT.

Puoi leggere tutto sull'esecuzione della macro qui - Come eseguire una macro in Excel (o guarda il video qui sotto).
Potrebbero piacerti anche i seguenti tutorial Excel/VBA:

  • Come ordinare i dati in Excel utilizzando VBA.
  • Ordina automaticamente i dati in ordine alfabetico utilizzando la formula.
  • Come eseguire un ordinamento dei dati a più livelli in Excel
  • Un'introduzione alle opzioni di ordinamento dei dati di Excel.
  • Filtro automatico Excel VBA: una guida completa con esempi
  • Come raggruppare i fogli di lavoro in Excel
  • Come capovolgere i dati in Excel

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave