Discussione: Corso VBA
Visualizza messaggio singolo
Vecchio 02-11-2014, 20.06.42   #63
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.208
Alexsandra è un gioiello raroAlexsandra è un gioiello raroAlexsandra è un gioiello raroAlexsandra è un gioiello raro
Le righe in un foglio di lavoro




Sappiamo già che in un foglio di lavoro le informazioni vengono organizzate in colonne e righe e come per le colonne, ciascuna riga è etichettata e numerata. Queste etichette sono rappresentate da piccoli rettangoli posti sul lato sinistro dell'interfaccia di Excel e ogni rettangolo che mostra l'etichetta di una riga è chiamata intestazione di riga. E’ possibile identificare le righe in un foglio di lavoro tramite la proprietà Rows di cui è dotato il foglio, pertanto, per fare riferimento a una riga, è possibile utilizzare l'oggetto foglio di lavoro per accedere alla proprietà Rows, in alternativa è possibile fare riferimento alle righe utilizzando l’oggetto Range.
Per identificare una riga si deve indicare il relativo foglio di lavoro e passare il suo indice tra le parentesi al metodo Rows, ecco un esempio che si riferisce alla 5 ° riga del secondo foglio di lavoro della cartella di lavoro corrente:
Codice:
Sub Prova ()
     Workbooks.Item(1).Worksheets.Item(2).Rows(5)
End Sub
Come per le colonne, il codice funziona solo se il secondo foglio della cartella di lavoro corrente è attivo, se si esegue il codice mentre un foglio di lavoro diverso dal secondo è attivo, si riceverà un errore. Come già detto, è possibile fare riferimento a una riga utilizzando l’oggetto Range, passando una stringa in cui nelle parentesi, si inserisce il numero della riga, seguito da due punti, e seguito dallo stesso numero di riga. Ecco un esempio che si riferisce alla Riga 4.
Codice:
Sub Prova ()
     Range("4:4")
End Sub
Se si vuole fare riferimento alle righe più di una volta, è possibile dichiarare una variabile di tipo Range e inizializzarla utilizzando l'operatore Set e assegnare l'intervallo che si desidera. Ecco un esempio:
Codice:
Sub Prova ()
Dim Serie_r As Range
    Set Serie_r = Workbooks.Item(1).Worksheets.Item("Foglio1").Range("4:4")
Serie_r. Select
End Sub
Individuazione di un gruppo di righe
Un gruppo di righe viene definito un intervallo se sono una accanto all'altra e per fare riferimento alle righe in un intervallo, tra le parentesi della collezione Rows, si deve passare una stringa che corrisponda al numero della riga di una estremità, seguita da due punti, e seguito dal numero di riga dell'altra estremità. Ecco un esempio che si riferisce all’intervallo di righe da 2 a 6
Codice:
Sub Prova ()
     Rows ("2:6")
End Sub
Le righe di un gruppo si qualificano come non adiacenti se non sono posizionate una accanto all'altra e per fare riferimento alle righe non adiacenti, si deve usare l’oggetto Range e usare una stringa da inserire nelle parentesi che rappresenta il numero di ogni riga seguita da due punti, e seguita dallo stesso numero di riga. Queste combinazioni sono separate da virgole. Ecco un esempio che si riferisce alle righe 3, 5 e 8
Codice:
Sub Prova ()
     Range ("3:3, 5:5, 8:8")
End Sub
Selezione di una riga
E’ possibile selezionare una riga o un gruppo di righe utilizzando il mouse, la tastiera, o una combinazione di entrambi. Per selezionare una riga con il mouse, si posiziona il cursore su un'intestazione di riga e si trasforma in una freccia rivolta verso destra, quindi basta clic sulla riga

Fig. 1

È inoltre possibile utilizzare solo la tastiera per selezionare una riga, assicurandosi che una cella sul lato destro sia selezionata, premere e tenere premuto il tasto Shift e contemporaneamente premere la barra spaziatrice e rilasciare il tasto Maiusc. Per supportare la selezione la classe Rows è dotata di un metodo denominato Select, pertanto, per selezionare una riga utilizzando codice VBA, si deve accedere a una riga utilizzando i riferimenti che abbiamo visto in precedenza e richiamare il metodo Select. Ecco un esempio che seleziona la riga 6
Codice:
Sub Prova ()
     Rows(6). Select
End Sub
Abbiamo anche visto che si potrebbe fare riferimento a una riga utilizzando l'oggetto Range, basta richiamare il metodo Select dopo l'accesso alla riga. Ecco un esempio che seleziona la riga 4
Codice:
Sub Prova ()
     Range("4:4"). Select
End Sub
Selezione di un gruppo di righe
È anche possibile selezionare più di una riga sia utilizzando il mouse, la tastiera, o una combinazione di entrambi. Per selezionare un intervallo di righe con il mouse, si deve cliccare su una intestazione di riga e tenere premuto il mouse verso il basso (il cursore assume la forma di una croce bianca), quindi trascinare nella direzione del campo

Fig. 2

Per selezionare più righe utilizzando solo la tastiera, si seleziona la riga di partenza e tenendo premuto il tasto Maiusc, premere il tasto freccia su o il tasto freccia giù. Una volta selezionato l'intervallo di righe, si rilascia il tasto Maiusc. È inoltre possibile utilizzare una combinazione di mouse e tastiera per selezionare una o più righe.

Per selezionare un intervallo di righe utilizzando una combinazione di mouse e tastiera, si sceglie una riga col mouse e si tiene premuto il tasto Shift, quindi si sceglie la riga all'altra estremità dell’intervallo e si rilascia il mouse. Per selezionare righe a caso utilizzando una combinazione di mouse e tastiera, si deve cliccare su una intestazione di riga, e tenendo premuto il tasto Ctrl si clicca su ogni intestazione di riga desiderata. Dopo aver selezionato le righe desiderate, si rilascia il mouse. Ogni riga selezionata sarà evidenziata

Fig. 3

Per selezionare un intervallo di righe utilizzando il codice, si deve fare riferimento al metodo Range, utilizzando le tecniche che abbiamo visto in precedenza, quindi richiamare il metodo Select. Ecco un esempio che seleziona le righe da 2 a 6
Codice:
Sub Prova ()
     Rows("2:6"). Select
End Sub
Per selezionare righe non adiacenti, si deve fare riferimento alle tecniche viste in precedenza e richiamare il metodo Select. Ecco un esempio che seleziona le righe 3, 5 e 8
Codice:
Sub Prova ()
     Range("3:3, 5:5, 8:8"). Select
End Sub
Per selezionare tutte le righe di un foglio di lavoro, si utilizza il metodo Select abbinandolo al metodo Rows. Ecco un esempio
Codice:
Sub Prova ()
  Rows.Select
End Sub
Altezze delle righe
L'altezza di una riga è data dalla distanza della parte superiore dai bordi inferiori della riga e ci sono varie tecniche che è possibile utilizzare per modificare l'altezza di una riga. Per modificare manualmente l'altezza di una riga, si deve posizionare il mouse sul bordo inferiore che separa dalla riga successiva, il mouse si trasformerà come in Fig. 4, e poi si deve cliccare e trascinare verso l'alto o verso il basso fino a raggiungere l'altezza desiderata, quindi rilasciare il mouse.

Fig. 4

È inoltre possibile ridimensionare un gruppo di righe, in primo luogo, si devono selezionare le righe come abbiamo descritto in precedenza e poi posizionare il mouse sul bordo inferiore di una delle righe selezionate e cliccare e trascinare verso l'alto o verso il basso fino ad ottenere l'altezza desiderata. Quindi rilasciare il mouse.

Oppure si può modificare l’altezza di una riga cliccando sull'intestazione della riga e seguire il percorso dalla barra multifunzione Home – Celle - Formato e cliccare su Adatta Altezza righe

Fig. 5

È possibile utilizzare una finestra di dialogo per impostare esattamente all'altezza desiderata di una riga o di un gruppo di righe. Per specificare l'altezza di una riga si deve cliccare con il pulsante destro del mouse sull'intestazione della riga e nel menu che appare clic su Altezza righe. Per specificare la stessa altezza per molte righe si deve selezionare un intervallo di righe, come abbiamo visto in precedenza, e cliccare con il pulsante destro del mouse su una riga (o una delle intestazioni di riga o all'interno della selezione) e poi cliccare su Altezza righe nel menu a discesa che appare.

Per sostenere l'altezza di una riga, l'oggetto Row è dotato di una proprietà denominata RowHeight, pertanto, per specificare a livello di codice l'altezza di una riga, si deve accedere alla riga utilizzando un riferimento, come abbiamo visto in precedenza, e accedere alla sua proprietà RowHeight assegnando il valore desiderato. Ecco un esempio che imposta l'altezza della riga 6 a 2,50
Codice:
Sub Prova ()
Rows(6).RowHeight = 20
End Sub
Creazione di righe
Sappiamo che Excel crea e mette a disposizione più di un milione di righe (dalla versione 2007 in poi) che è possibile utilizzare quando si lavora su un foglio di lavoro e, a volte, può essere necessario inserire una riga tra due righe esistenti. Quando si aggiunge una nuova riga, Excel elimina l'ultima riga per mantenere il conteggio totale delle righe, e per inserire solo una nuova riga sopra uno esistente, si deve cliccare con il pulsante destro del mouse sull'intestazione della riga che sarà al di sotto della nuova che si desidera aggiungere e cliccare su Inserisci dal menu a discesa che compare, oppure cliccare sull'intestazione della riga o qualsiasi casella sul lato destro e dal percorso della barra multifunzione, Home – Celle - Inserisci e cliccare su Righe e dal menu a discesa che appare scegliere Inserisci righe foglio

Fig. 6

E’ possibile aggiungere una nuova riga usando il codice VBA, sfruttando la classe Rows che è dotata di un metodo denominato Insert, pertanto, per aggiungere una riga di codice, si deve fare riferimento alla riga che si posizionerà al di sotto della nuova e chiamare il metodo Insert. Ecco un esempio:
Codice:
Sub Prova ()
     Rows(3). Insert
End Sub
Per aggiungere più di una riga, sia adiacenti che non adiacenti, si devono seguire i metodi poco sopra esposti, ricordando che la nuova si verrebbe a creare al di sotto delle righe selezionate. Per aggiungere nuove righe a livello di programmazione, si deve fare riferimento alle righe interessate e richiamare il metodo Insert. Ecco un esempio che aggiungerà nuove righe nelle posizioni 3, 6, e 10
Codice:
Sub Prova ()
Range("3:3, 6:6, 10:10").Insert
End Sub
Eliminare una riga
Per eliminare una riga si deve cliccare con il pulsante destro del mouse sull'intestazione della riga e fare clic su Elimina nel menu a discesa che appare, oppure dalla barra multifunzione, seguendo il percorso Home – Celle - Elimina quindi dal menu a discesa che appare cliccare su Elimina righe foglio

Fig. 7

Per supportare la rimozione riga via codice, la classe Row è dotata di un metodo chiamato Delete che non necessita di alcun argomento per individuare la riga. Sulla base di questo, per eliminare una riga, si deve accedere utilizzando un riferimento come abbiamo visto prima, e richiamare il metodo Delete. Ecco un esempio che cancella la riga 3
Codice:
Sub Prova ()
Rows(3).Delete
End Sub
Naturalmente, è possibile utilizzare anche l'oggetto Range per fare riferimento alla riga. Per cancellare più di una riga, prima si devono selezionare e seguire i percorsi sopra esposti, mentre per eliminare un gruppo di righe via codice si utilizza l’0ggetto Range in questo modo
Codice:
Sub Prova ()
     Range("3:3, 6:6, 10:10").Delete
End Sub
Per nascondere una riga si deve selezionare la riga e fare clic su Nascondi dal menu a discesa che compare, oppure seguire il percorso dalla barra multifunzione Home – Celle - Formato, quindi cliccare sulla voce Nascondi e Scopri e dal menu a discesa che appare cliccare su Nascondi righe

Fig. 8

Per nascondere una riga via codice, si deve prima selezionare, quindi usare la proprietà EntireRow . Ecco un esempio che nasconde la riga 6
Codice:
Private Sub Prova ()
    Rows("6:6").Select
    Selection.EntireRow.Hidden = True
End Sub
Allo stesso modo, per nascondere un gruppo di righe, prima si deve selezionare il Range, quindi usare il comando Selection.EntireRow.Hidden = True, mentre per mostrare le righe nascoste basta cambiare il valore assegnato da TRUE a FALSE
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato