02 – Le MACRO – Selezionare le celle

Ciao a tutti e benvenuti sul sito Excel Espresso, oggi vedremo alcuni metodi su come selezionare le celle o un intervallo sfruttando il codice VBA.

Vi chiedo di scaricare il file d’esempio che trovate in questo link: Le tabelline questo file vi servirà come base di partenza per creare la macro.

Prima di vedere quali sono i comandi che ci permettono di selezionare una cella o più celle iniziamo facendo un elenco dei vari oggetti che tratteremo perché è importante sapere che nel foglio di Excel c’è una gerarchia, partiamo dal più piccolo per arrivare alla cartella di lavoro.

L’oggetto Cells rappresenta la singola cella e viene contraddistinto dal numero di riga e colonna.

L’oggetto Range può rappresentare una singola cella, un intervallo di celle, una riga o una colonna.

Worksheet rappresenta il foglio di lavoro che comprende gli oggetti Range e Cells

Workbook rappresenta la cartella di lavoro di Excel che ovviamente comprende tutti gli oggetti visti prima

Nell’area di sviluppo ho già creato una nuova macro che ho chiamato SELEZIONE, in cui ci sono tutti gli oggetti precedentemente elencati.


Partiamo col comando Cells, se volessimo selezionare la cella B5 tramite il comando CELLS dovremo indicare all’interno della parentesi il numero di riga ed il numero di colonna della cella B5, di conseguenza scriviamo:

Cells(5 , 2).Select

Tramite il comando F8, di cui abbiamo in precedenza, eseguiamo l’istruzione appena vista.

Passiamo ora al comando Range, se volessimo selezionare la D2 non farò nient’altro che scrivere:

Range(“D2”).Select

Come fatto prima premiamo F8, ed eseguiamo l’istruzione appena vista

I due metodi appena visti ci portano allo stesso risultato, cioè selezionare una cella, ma con una differenza sostanziale, nel primo caso che forse può essere meno intuitivo, utilizziamo dei numeri e questi ci torneranno molto comodi nel caso in cui volessimo usare dei riferimenti dinamici o istruzioni all’interno di un ciclo, mentre il secondo caso è si più immediato perché scriviamo il riferimento che vediamo in Excel, ma è pur sempre un testo e questo è il motivo perché lo scriviamo tra apici.

Supponiamo ora di volere selezionare l’intervallo C2:L2, tramite il comando Range l’operazione sarà molto semplice ed intuitiva, infatti scriveremo:

 Range(“C2:L2”).Select

Sfruttiamo ancora una volta il comando F8 ed ecco selezionato l’intervallo C2:L2

Se volessimo fare la selezione di un intervallo con il comando Cells dovremo nidificarlo all’interno di un comando Range, perché con la prima coordinata daremo il riferimento della cella di partenza e con la seconda la cella di arrivo.

Nel caso specifico se volessimo selezionare l’intervallo B3:B2 scriveremo:

Range(Cells(3, 2), Cells(12, 2)).Select

dove i numeri 3 e 12 rappresentano le righe ed il numero 2 la colonna B

Premiamo F8 e verifichiamo la selezione.

Adesso complichiamo un pochino le cose, fino ad ora abbiamo selezionato dei riferimenti contenuti all’interno del Foglio1 che è il foglio attivo, ma se volessimo spostarci in un altro foglio? Come fare?

Per selezionare la cella A1 del Foglio2 dovremo prima attivare il foglio in cui vogliamo andare e successivamente selezionare la cella o l’intervallo con le operazioni che abbiamo visto poco fa.

Il comando di attivazione sarà

Worksheets(“Foglio2”).Activate

Range(“A1”).Select

Verifichiamo col comando F8, e come potete vedere la prima riga attiva il Foglio2 e la seconda riga seleziona la cella A1

Se volessimo selezionare la cella B2 del Foglio2 usando il comando Cells potremo scrivere:

Sheets(“Foglio2”).Activate

Cells(2, 2).Select

Come avrete potuto notare nel primo caso abbiamo sfruttato l’oggetto Worksheets mentre nel secondo abbiamo usato l’oggetto Sheets, il risultato è il medesimo non facciamo nient’altro che dire ad Excel di attivare un determinato foglio.

Diamo un F8 di controllo e vediamo che viene selezionata la cella B2

Se fino ad ora abbiamo nominato il Foglio1 o il Foglio2 tramite il comando Workbook, possiamo indicare ad Excel il nome della cartella di lavoro, questo più tornare utile quando andiamo a lavorare su più file di Excel.

Guardiamone la sintassi:

Application.Workbooks(“Le tabelline – Excel Espresso.xlsm”).Sheets(“Foglio1”).Activate

Così facendo attiveremo il foglio1 e successivamente con:

Range(“A5”).Select

Selezioneremo la cella A5

Facciamo un ultimo sforzo, prima vi ho detto che se vogliamo spostarci da un foglio all’altro, prima dobbiamo attivarlo, in realtà con il comando Goto possiamo andare direttamente alla cella voluta dando ovviamente il percorso preciso.

Il nostro obiettivo è quello di selezionare la cella E5 del Foglio2 vediamo come scrivere il tutto:

Application.Goto Workbooks(“Le tabelline – Excel Espresso.xlsm”).Sheets(“Foglio2”).Cells(5, 5)

Il significato è: vai nella cartella di lavoro Le tabelline – Excel Espresso.xlsm, al Foglio2 e seleziona la cella della riga 5 colonna 5.

Vi faccio notare come nel nostro caso l’oggetto Workbooks sia ridondante nel caso specifico, infatti potremmo ridurre il tutto semplicemente indicando il nome del foglio e la cella da selezionare.

Se volessimo selezionare la cella E4 del Foglio1 basterà scrivere:

Application.Goto ActiveWorkbook.Sheets(“foglio1”).Range(“E4”)

Come fatto prima premiamo F8, ed ecco che arriviamo subito a destinazione: la cella E4

Nel video qui sotto trovate tutti i passaggi appena illustrati, buona visione.