Come cambiare automaticamente la riga di intestazione bloccata con Blocca riquadri

Teresa ha alcuni fogli di lavoro che hanno due sezioni separate (chiamiamole “sezione superiore” e “sezione inferiore”) che hanno intestazioni di colonna leggermente diverse. Ha bloccato la riga superiore per mantenere visibili le intestazioni della sezione superiore durante lo scorrimento verso il basso, ma dopo aver superato un certo punto Teresa finisce per guardare i dati della sezione inferiore con le intestazioni della sezione superiore ancora bloccate in alto. Le piacerebbe sapere se esiste un modo per cambiare la riga di intestazione “congelata” per mostrare le intestazioni della sezione inferiore quando scorre verso il basso fino al punto in cui vengono visualizzati solo i dati della sezione inferiore.

Sì, esiste un modo per farlo, ma implica l’uso delle macro. Prima di considerare una soluzione basata su macro, potresti prendere in considerazione la ristrutturazione dei tuoi dati in modo che ciascuna sezione si trovi su fogli di lavoro diversi (dal punto di vista della progettazione, questa sarebbe la soluzione più semplice). Se ciò non è possibile, è necessario approcciarsi alle macro.

Un approccio semplice consiste nel modificare semplicemente ciò che è memorizzato nella riga superiore (riga 1) del foglio di lavoro, a seconda della riga selezionata. Ad esempio, la seguente macro apporterà modifiche nella riga superiore in base alla posizione della cella attiva. Se è prima della riga 40, una serie di intestazioni viene inserita nella prima riga; se dopo la riga 40 viene inserita un’altra serie di intestazioni.

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.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Per utilizzare la macro, assicurati di inserirla nella finestra del codice per il foglio di lavoro che contiene le due sezioni di dati. Dovresti anche modificare il valore assegnato alla variabile iBottomData per riflettere il numero di riga in cui inizia la sezione inferiore dei dati.

Se desideri, invece, modificare effettivamente la riga bloccata mentre ti sposti verso il basso nel foglio di lavoro, la macro deve essere un po’ più robusta. In realtà, ci sono due macro che seguono (entrambe vanno, ancora una volta, nella finestra del codice per il foglio di lavoro) e vengono attivate quando si modifica la cella selezionata e quando si fa clic con il pulsante destro del mouse sul foglio di lavoro.

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.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Il gestore eventi Worksheet_SelectionChange sposta automaticamente la “divisione congelata” sotto la seconda riga di intestazioni quando il cursore della cella attiva colpisce quella riga. Questa riga viene rilevata nell’istruzione If che controlla se la prima cella della riga contiene il testo “titolo2” o meno (ovviamente, questa impostazione dovrà essere modificata per riflettere ciò che sarà realmente nella prima cella).

Il gestore eventi Worksheet_BeforeRightClick sposta nuovamente la “divisione congelata” nel primo set di intestazioni ma lascia la cella attiva nella riga sopra il secondo set di intestazioni.

Dovresti capire che entrambe le soluzioni macro presentate in questo suggerimento presuppongono che tu stia effettivamente scorrendo il foglio di lavoro e modificando la cella selezionata mentre procedi (in altre parole, che tu stia premendo il tasto Freccia giù per eseguire lo scorrimento). Se stai semplicemente modificando ciò che viene visualizzato nel foglio di lavoro utilizzando la barra di scorrimento verticale, le intestazioni bloccate non cambieranno perché non stai modificando la cella selezionata e i gestori eventi non si attiveranno mai.

La creazione di una soluzione più completa andrebbe oltre lo scopo di questo suggerimento perché comporterebbe l’interfacciamento con il sistema operativo. Se sei interessato a seguire questo percorso, tuttavia, un buon punto di partenza potrebbe essere questa pagina sul sito Web di Chip Pearson.

 

 

Tags: , , , , , , , , , , , , , , , , , , , , , , , , ,

Ti è stato utile?