- ExcelMinds - Trucchi e suggerimenti per Microsoft Excel
- Posts
- Scopri il trucco per trovare l'ultima riga non vuota in Excel con VBA
Scopri il trucco per trovare l'ultima riga non vuota in Excel con VBA
Semplifica le tue macro con questo codice essenziale!
La tua SCUOLA DI EXCEL
Centinaia di Trucchi e Suggerimenti per le tue necessità quotidiane | Il tuo Corso di Excel VBA. Le prime 4 lezioni GRATIS |
LINK UTILI
ExcelMinds
Non lasciare che le nostre mail finiscano nella cartella dello SPAM
Aggiungi l’indirizzo del mittente ai tuoi contatti
CITAZIONE DELLA SETTIMANA
L'automazione applicata a un'operazione efficiente ne amplificherà l'efficienza. L'automazione applicata a un'operazione inefficiente ne amplificherà l'inefficienza.
CONTENUTI AREA PREMIUM
Attualmente l’AREA PREMIUM include i seguenti contenuti:
168 Tips and Tricks
91 Formule avanzate spiegate passo-passo
12 Templates pronti all’uso
651 Esempi di Codice VBA e macro su casi reali
34 Brevi Tutorial VBA
Come trovare l'ultima riga non vuota in VBA per Excel
Quando si lavora con grandi fogli di calcolo, è fondamentale sapere come identificare l'ultima riga non vuota in un foglio. Questo è utile, ad esempio, per aggiungere nuovi dati senza sovrascrivere quelli esistenti o per iterare solo le celle effettivamente utilizzate.
In VBA, esistono diversi metodi per trovare l'ultima riga non vuota. Vediamoli insieme con un esempio pratico!
Metodo 1: Usare xlDown
Questo metodo si basa sulla simulazione del comando Ctrl + Freccia giù. Quando si utilizza il metodo xlDown, VBA parte dalla cella specificata (in questo caso Cells(1, 1)) e scende fino alla prima cella vuota o all'ultima riga contenente dati nella stessa colonna.
Ecco il codice:
Sub TrovaUltimaRiga_xlDown()
Dim ws As Worksheet
Dim UltimaRiga As Long
' Assegna il foglio di lavoro
Set ws = ThisWorkbook.Sheets("Foglio1")
' Trova l'ultima riga
UltimaRiga = ws.Cells(1, 1).End(xlDown).Row
' Mostra il risultato
MsgBox "L'ultima riga non vuota è: " & UltimaRiga
End Sub
Come funziona:
Cells(1, 1)
indica la cella A1 come punto di partenza.End(xlDown)
simula l'azione di premere Ctrl + Freccia giù, trovando la prima cella non vuota seguente o l'ultima della colonna.La proprietà
.Row
restituisce il numero di riga della cella trovata.
Nota: Questo metodo funziona bene se i dati nella colonna sono continui, ma potrebbe fallire in presenza di celle vuote all'interno dell'intervallo. Ad esempio, se hai un intervallo come A1:A10 con dati, ma A5 è vuota, il metodo si fermerà su A4 e non su A10.
CONTINUA »
Excel VBA Masterclass
TRASFORMA EXCEL in uno strumento POTENTISSIMO (con VBA)!
Stanco di attività ripetitive in Excel? Excel VBA Masterclass è la soluzione definitiva per automatizzare i tuoi task e creare strumenti professionali su misura. Impara VBA con un percorso completo, pratico e al tuo ritmo.
Benefici:
✅ Automatizza Excel: Risparmia ore di lavoro.
✅ Crea strumenti personalizzati: Soluzioni su misura per le tue esigenze.
✅ Masterclass Completa: 52 dispense, progetti pratici, test e attestato finale.
Metodo 2: Usare xlUp
partendo dall'ultima riga disponibile
Per evitare problemi con celle vuote, un approccio più robusto è partire dall'ultima riga del foglio e risalire. Questo approccio utilizza il metodo End(xlUp)
, che simula il comando Ctrl + Freccia su.
Ecco il codice:
Sub TrovaUltimaRiga_xlUp()
Dim ws As Worksheet
Dim UltimaRiga As Long
' Assegna il foglio di lavoro
Set ws = ThisWorkbook.Sheets("Foglio1")
' Trova l'ultima riga
UltimaRiga = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' Mostra il risultato
MsgBox "L'ultima riga non vuota è: " & UltimaRiga
End Sub
Come funziona:
La funzione
ws.Rows.Count
restituisce il numero totale di righe nel foglio, che varia a seconda della versione di Excel (ad esempio, 1.048.576 righe in Excel moderno).Cells(ws.Rows.Count, 1)
si posiziona sull'ultima cella della prima colonna.End(xlUp)
risale fino alla prima cella non vuota, simulando il comando Ctrl + Freccia su.La proprietà
.Row
restituisce il numero della riga individuata.
Vantaggi: Questo metodo è particolarmente utile in scenari con dati discontinui, dove alcune celle all'interno della colonna potrebbero essere vuote. Rispetto al metodo xlDown
, consente di trovare sempre la riga più bassa contenente dati, indipendentemente dalla presenza di celle vuote sopra.
Esempio pratico: Immagina una colonna A con dati fino alla riga 100, ma con righe vuote tra 50 e 75. Questo metodo individuerà correttamente la riga 100 come ultima riga contenente valori.
Metodo 3: Usare UsedRange
Un approccio alternativo è utilizzare la proprietà UsedRange
, che identifica tutte le celle utilizzate nel foglio, indipendentemente dal fatto che contengano dati o meno. Questa proprietà può essere utile per ottenere una panoramica rapida dell'intervallo di lavoro.
Ecco il codice:
Sub TrovaUltimaRiga_UsedRange()
Dim ws As Worksheet
Dim UltimaRiga As Long
' Assegna il foglio di lavoro
Set ws = ThisWorkbook.Sheets("Foglio1")
' Trova l'ultima riga
UltimaRiga = ws.UsedRange.Rows(ws.UsedRange.Rows.Count).Row
' Mostra il risultato
MsgBox "L'ultima riga non vuota è: " & UltimaRiga
End Sub
Come funziona:
La proprietà
UsedRange
identifica l'intero intervallo di celle che Excel considera "utilizzato" nel foglio.Rows(ws.UsedRange.Rows.Count)
ottiene l'ultima riga dell'intervallo usato..Row
restituisce il numero della riga corrispondente.
Vantaggi:
Permette di considerare velocemente l'intero intervallo di lavoro senza specificare colonne o celle iniziali.
Ideale per fogli di lavoro semplici o quando non ci sono celle formattate inutilmente.
Limiti:
UsedRange
può includere celle che non contengono dati ma sono state precedentemente formattate o modificate, restituendo quindi una riga maggiore rispetto a quella realmente necessaria.Non è sempre affidabile per intervalli disordinati o con dati sparsi.
Esempio pratico: Immagina di avere un foglio in cui hai cancellato dei dati dalle ultime righe. Anche se le righe appaiono vuote, Excel potrebbe considerarle ancora "usate" a causa della formattazione, portando UsedRange
a includerle comunque.
Conclusione
Ora hai tre metodi per trovare l'ultima riga non vuota in Excel con VBA! Ognuno di essi ha vantaggi e limiti specifici, quindi sperimenta per capire quale si adatta meglio alle tue esigenze e al tuo flusso di lavoro.
Usa
xlDown
per scenari semplici con dati continui.Opta per
xlUp
se ti serve un metodo robusto contro celle vuote.Scegli
UsedRange
per un controllo rapido sull'intero foglio di lavoro.
Questi strumenti ti consentiranno di ottimizzare il tuo codice VBA, risparmiando tempo e migliorando l'affidabilità delle tue macro.
Alla prossima settimana,
Simone (aka Somebooks)
Excel Academy
Informazioni sull'iscrizione alla newsletter: la newsletter di Excel Academy verrà recapitata solo a chi si è iscritto. Se ti è stata inoltrata e in futuro vuoi avere la tua copia, ti invitiamo a visitare questa pagina ed iscriverti.
Se desideri condividere questa newsletter con altri:
Inoltra questa newsletter via e-mail, ma prima elimina il link per la cancellazione in fondo, in modo da non essere accidentalmente cancellato
Chiedi al tuo amico/collega di visitare Excel Academy
Inserisci un link al sito di Excel Academy nella newsletter aziendale o nel tuo sito web.