Ordinare le schede del foglio di lavoro in ordine alfabetico

Patrizio si chiede se esiste un modo rapido per ordinare alfabeticamente i fogli di lavoro nella sua cartella di lavoro. Non esiste un metodo integrato per eseguire questa operazione, ma è possibile utilizzare una macro che esegua l’ordinamento per te. Presenterò due approcci in questo suggerimento. Il primo fornisce un modo semplice per eseguire l’ordinamento.

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Questa macro ordina le schede del foglio di lavoro per nome in ordine crescente. Se vuoi ordinarli in ordine decrescente, tutto ciò che devi fare è cambiare “>” nella riga centrale in “<“.

La macro funziona alla grande se hai un numero relativamente basso di fogli di lavoro nella tua cartella di lavoro. Se, quando esegui la macro, noti che l’esecuzione richiede molto tempo, potresti voler utilizzare un algoritmo di ordinamento più efficiente nella macro. Ad esempio, la seguente è una versione che legge i nomi di tutti i fogli di lavoro in un array, ordina l’array utilizzando l’algoritmo BubbleSort e quindi applica il vero ordinamento:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Chiunque abbia programmato per un po’ di tempo sa che BubbleSort è una buona routine di ordinamento generica, ma ce ne sono di più veloci disponibili. Ad esempio, se hai parecchi fogli di lavoro e iniziano ad essere molto disorganizzati, potresti scoprire che l’algoritmo QuickSort è più vantaggioso. Tutto quello che dovresti fare per cambiare quanto sopra per usare QuickSort è aggiungere l’algoritmo QuickSort come subroutine (puoi trovare l’algoritmo in qualsiasi buon libro di programmazione Visual Basic) e quindi chiamare la procedura dall’interno della macro SortSheets principale (ciò significa cambiare la riga in cui ora viene chiamato BubbleSort).

C’è un’altra differenza tra questa seconda macro e la prima. La prima macro non presta attenzione alle maiuscole e minuscole del testo utilizzato per denominare i fogli di lavoro. Pertanto, MyWorksheet verrebbe visualizzato allo stesso modo di MYWORKsheet. La seconda macro presta attenzione alle maiuscole e minuscole e ordina di conseguenza. Naturalmente, questo non è un problema particolarmente grande, dal momento che nemmeno Excel presta attenzione alle maiuscole nei nomi dei fogli di lavoro.

Solo una breve nota: la routine BubbleSort mostrata sopra è di natura generica. Ciò significa che funzionerà per ordinare qualsiasi array, non solo per ordinare i nomi delle schede del foglio di lavoro.

A seguire, trovi invece un’altra versione della macro SortSheets2, che richiede però la funzione DATI.ORDINA introdotta in Excel 365 o 2021:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Tags: , , , , , , , , ,

Ti è stato utile?