Informazioni fluttuanti in una riga congelata (Microsoft Excel)
Bev ha un foglio di lavoro con due righe di intestazione bloccate e una colonna bloccata. Può quindi scorrere la pagina aggiungendo dati settimana per settimana. I nomi e i subtotali sono fissati a sinistra, le date della settimana in alto. Soprattutto, nella prima riga congelata, Bev ha un bel titolo di fantasia che descrive la cartella di lavoro. Sta cercando un modo per fare in modo che il suo titolo (quello nella prima riga) “fluttui” in modo che quando scorre la pagina il titolo non scompaia dal bordo del foglio di lavoro visibile.
Il modo più semplice per farlo è assicurarsi che il titolo sia nella cella A1.
Poiché hai una colonna e due righe bloccate, mentre scorri fino alla cella di destra A1, contenente il titolo, sarà sempre visibile sullo schermo.
Se vuoi qualcosa di un po ‘più stravagante con il tuo titolo, allora devi lavorare un po’ con le caselle di testo e le macro. Se inserisci il titolo in una casella di testo posizionata nella prima riga, puoi utilizzare alcune macro per assicurarti che la casella di testo sia sempre centrata sullo schermo in quella riga.
Supponiamo, per il bene di questo esempio, che la casella di testo contenente il titolo si chiami “TitleTextBox”. Mentre scorri a sinistra ea destra nel foglio di lavoro, una macro potrebbe verificare automaticamente che il bordo sinistro della casella di testo sia sempre uguale al bordo sinistro dell’area visibile dello schermo. Il codice seguente deve essere aggiunto al codice del foglio di lavoro per il foglio di lavoro contenente la casella di testo:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Me.Shapes("TitleTextBox").Left = ActiveWindow.VisibleRange.Left End Sub
Questa macro, poiché fa parte del codice del foglio di lavoro, verrà eseguita ogni volta che la selezione viene modificata nel foglio di lavoro. Pertanto, quando si utilizzano i tasti freccia per spostarsi a sinistra oa destra, si utilizzano i tasti di tabulazione o si seleziona una cella con il mouse, la macro verrà eseguita e si assicurerà che i bordi sinistro della casella di testo e l’area visibile corrispondano sempre.
Quando questa macro non si attiva è quando si scorre a sinistra ea destra utilizzando la barra di scorrimento orizzontale nella parte inferiore dello schermo. Non esiste alcun “evento di scorrimento” che viene attivato automaticamente quando vengono utilizzate le barre di scorrimento. Finché non viene effettuata una selezione da qualche parte all’interno del nuovo intervallo visibile, attivando così l’evento SelectionChange, la posizione della casella di testo non verrà spostata.
L’unica soluzione alternativa a questa limitazione è utilizzare le funzionalità di timer di Visual Basic per aggiornare periodicamente la casella di testo. Il codice seguente lo esegue ogni secondo, ma è possibile modificarlo in modo che venga eseguito meno spesso, se lo si desidera.
Questo codice viene aggiunto a un normale modulo VBA:
Sub UpdateTB() If ActiveSheet.Name = "Sheet1" Then ActiveSheet.Shapes("TitleTextBox").Left = _ ActiveWindow.VisibleRange.Left End If Application.OnTime Now + TimeSerial(0, 0, 1), "UpdateTB" End Sub
E questo viene aggiunto all’oggetto cartella di lavoro per avviare il timer quando la cartella di lavoro viene aperta per la prima volta:
Private Sub Workbook_Open() UpdateTB End Sub
Se si utilizza l’approccio basato sul timer per posizionare la casella di testo, non sarà necessario utilizzare quello legato all’evento SelectionChange. La versione con timer regola semplicemente il titolo dopo ogni intervallo.
C’è un ulteriore “svantaggio” di entrambe le tecniche basate su macro oltre a qualsiasi lentezza introdotta dal codice in esecuzione: ogni volta che il codice viene eseguito, cancella lo “stack di annullamento”. Ciò significa che non sarai in grado di “annullare” le modifiche apportate alla cartella di lavoro se necessario.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (3140) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: