Quando lavori con tabelle di dati contenenti informazioni che hai ricevuto da un’altra persona, potresti voler eliminare tale quantità di dati nella tabella eliminando le righe per le quali viene soddisfatta una condizione particolare. Esistono diversi modi per affrontare un compito del genere.
Il primo metodo consiste nell’utilizzare la funzione Filtro automatico di Excel. Funziona particolarmente bene se si dispone di criteri semplici con cui eliminare le righe. Quando si attiva il filtro automatico, Excel posiziona i pulsanti a discesa sul lato destro di ogni cella nella riga di intestazione della tabella di dati. Utilizzando questi pulsanti a discesa è possibile specificare i record che si desidera visualizzare. È necessario selezionare un valore di filtro che comporterà la visualizzazione solo delle righe che si desidera eliminare. Con quelle righe visualizzate, puoi selezionarle e utilizzare gli strumenti della barra multifunzione per eliminare le righe. Quando disattivi il filtro automatico, ti rimarranno solo le righe che desideri.
Un altro metodo può prevedere l’uso di macro per eseguire l’eliminazione. Questo approccio funziona bene se devi eseguire le eliminazioni su molti dati o se lo fai abbastanza spesso. Tieni presente che il Filtro automatico ha il vantaggio che puoi ancora annullare la tua azione mentre se esegui la macro, le righe eliminate sono perse per sempre a meno che tu non abbia un backup.
La seguente macro può eliminare le righe in base a un valore chiave:
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Per utilizzare la macro, seleziona l’intervallo di celle contenente la chiave da controllare delle righe da valutare. Ad esempio, se la chiave da controllare è nella colonna G e si desidera controllare le righe da 5 a 73, seleziona l’intervallo G5:G73. Quando esegui la macro, ti chiederà quale valore vada verificato. Se una qualsiasi cella nell’intervallo G5:G73 contiene il valore specificato, la riga corrispondente per quella cella verrà eliminata.
Una versione molto più breve della stessa macro può essere la seguente:
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Esistono ovviamente altri modi per eliminare righe in base a un valore.
Di seguito sono riportati 5 metodi che elimineranno le righe all’interno di una selezione. Se conosci l’intervallo puoi sostituire “Selection” con il tuo Range(). È importante notare che i metodi meno efficienti sono quelli che utilizzano i loop. Questo perché eliminano solo una riga alla volta!
In alcuni esempi disattiviamo il calcolo e l’aggiornamento dello schermo. Il motivo per cui disattiviamo il calcolo copre il caso in cui l’intervallo in cui stiamo eliminando le righe contenga molte formule, in tal caso Excel potrebbe dover ricalcolare ogni volta che una riga viene eliminata, rallentando la macro. Anche l’aggiornamento dello schermo impostato su false accelererà la nostra macro poiché Excel non proverà a ridisegnare lo schermo ogni volta che cambia.
La seguente macro elimina l’intera riga all’interno della selezione se l’INTERA riga non contiene dati.
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
La seguente macro elimina l’intera riga all’interno della selezione se alcune delle celle ALL’INTERNO DELLA SELEZIONE non contengono dati.
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
La seguente macro elimina l’intera riga all’interno della selezione se l’INTERA riga non contiene dati.
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
La seguente macro sposta le righe vuote in fondo all’elenco
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
La seguente macro elimina le righe contenenti la parola “Elimina” in una determinata colonna, utilizzando il filtro automatico:
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Rimuovere automaticamente le righe vuote
I codici sopra funzioneranno bene per rimuovere le righe vuote da un elenco che ne ha già alcune, ma come si suol dire “Prevenire è meglio che curare”. I due esempi seguenti rimuoveranno le righe vuote man mano che si verificano. Entrambi i codici devono essere inseriti nel modulo Foglio di lavoro e si attiveranno ogni volta che una cella cambia nel foglio di lavoro.
In entrambi i codici noterai Application.EnableEvents=False questo è spesso necessario all’interno di codici evento come questo, altrimenti l’evento verrebbe attivato nuovamente una volta eseguito il codice che a sua volta attiverà nuovamente l’evento e così via…
Noterai senza dubbio anche il GoTo SelectionCode che si verifica se il numero di celle all’interno della selezione supera uno. Il motivo è che si verificherebbe un errore se il codice raggiungesse la parola chiave Target poiché Target si riferisce a una singola cella.
Il secondo esempio usa il metodo Sort anziché EntireRow.Delete ed è il metodo preferito da usare, se possibile. Quello che succede è che tutte le righe vuote vengono posizionate nella parte inferiore dell’intervallo se l’intera riga è vuota.
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.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)