In questo articolo vediamo come eliminare con una macro un set di dati da un foglio Excel. Questa funzione è utile quando si ha la necessità di ripulire ciclicamente dei dati senza cancellare le formule e la programmazione dell’ intero foglio.
Il set di dati da cancellare può essere:
- molto esteso (migliaia di righe)
- non contiguo all’interno del foglio
- distribuito su più fogli
L’operazione manuale di cancellazione manuale richiede per ogni porzione di dati contigui da cancellare la loro selezione e cancellazione , bisogna quindi selezionare più zone all’interno del singolo foglio con il tasto Ctrl e ripetere questa operazione su più fogli. L’ operazione può diventare onerosa per migliaia di righe.
Soprattutto se deve essere ripetuta ciclicamente potrebbe essere utile risparmiare tempo lasciando fare il lavoro ad una macro.
Vedremo il codice che seleziona una zona ben precisa eliminando poi tutti i dati partendo da una determinata linea.
Utilizzeremo le funzioni per trovare l’ultima riga e l’ultima colonna del set di dati che ci interessa eliminare. Queste funzioni sono state descritte in un precedente articolo: Problema della individuazione automatica dell’ ultima riga e dell’ ultima colonna con dati in un file Excel
Al solito dal file Excel che ci interessa apriamo l’ editor VBA e creiamo la macro ‘ZapData’ scrivendo il codice che segue
Sub ZapData() Dim LastRow, StartZapRow As Integer Dim DataSheet As Worksheet Dim LastCol As Long Set DataSheet = Worksheets(“Zap”) LastRow = DataSheet.UsedRange.Rows.Count LastCol = DataSheet.UsedRange.Columns.Count StartZapRow = 12 DataSheet.Range(“A” & StartZapRow & “:” & NumCol2Letter(LastCol) & LastRow).Delete MsgBox “Operazione annullata”, vbInformation, “ZapDataImport” |
Questo codice seleziona il foglio del file Excel, nel nostro esempio foglio si chiama ‘Zap’, calcola l’ultima riga e l’ ultima colonna del foglio, imposta la riga 12 come partenza dei dati da cancellare, chiede conferma dell’ operazione ed infine cancella i dati dalla riga 12 fino alla fine dei dati contenuti nel foglio.
E’ facile ripetere il codice indicando altri set di dati nello stesso foglio e/o in altri fogli.