Spesso quando Dave ha due cartelle di lavoro aperte, usa Arrange | Orizzontale per visualizzarli contemporaneamente. Questo divide lo spazio in modo uniforme tra le due cartelle di lavoro. Tuttavia, capita spesso che Dave desideri vedere solo poche righe di dati in una cartella di lavoro e molte righe nell’altra. Si chiede se esiste un modo conveniente per ridimensionare manualmente la cartella di lavoro più piccola e fare in modo che Excel riempia lo spazio rimanente sullo schermo con la seconda cartella di lavoro.

Il modo manuale per farlo è quello con cui Dave (e la maggior parte degli altri utenti di Excel) hanno già familiarità: disponi le finestre orizzontalmente, ridimensiona la finestra superiore e poi ridimensiona la finestra inferiore. In questo modo le finestre saranno esattamente come le desideri per svolgere il tuo lavoro.

Se desideri un modo più automatico per ridimensionare le finestre, potresti utilizzare una macro per eseguire l’operazione. La seguente macro si basa su di te per ridimensionare la prima finestra nel modo desiderato e quindi ridimensiona automaticamente la seconda finestra per occupare lo spazio rimanente sotto la finestra superiore.

Sub UnevenSplit1()

Dim Ht0 As Single     Dim Ht1 As Single     Dim Ht2 As Single     Dim Top2 As Single

If Windows.Count = 2 Then         With Windows(1)

Ht1 = .Height             .WindowState = xlMaximized             Ht0 = .Height         End With         Top2 = Ht1 + 3         Windows.Arrange ArrangeStyle:=xlHorizontal         With Windows(1)

.Top = 1             .Height = Ht1         End With         With Windows(2)

.Top = Top2             .Height = Ht0 - Ht1 - 22         End With         Windows(1).Activate     End If End Sub

La macro ridimensionerà le finestre della cartella di lavoro solo se sono aperte solo due cartelle di lavoro. Se ne hai più o meno, sembrerà che non succeda nulla.

Puoi fare un altro passo dell’automazione facendo ridimensionare la macro anche nella finestra superiore. L’esempio seguente finisce con la tua finestra superiore che occupa il 25% dello schermo e la finestra inferiore che occupa il 75%.

Sub UnevenSplit()

Dim Ht1 As Single     Dim Ht2 As Single     Dim Ht1a As Single     Dim Ht2a As Single     Dim Top2 As Single

If Windows.Count = 2 Then         Windows.Arrange ArrangeStyle:=xlHorizontal         Ht1 = Windows(1).Height         Ht2 = Windows(2).Height         Ht1a = Ht1 / 2         Top2 = Ht1a + 3         Ht2a = Ht2 + Ht1a

With Windows(1)

.Top = 1             .Height = Ht1a         End With         With Windows(2)

.Top = Top2             .Height = Ht2a         End With         Windows(1).Activate     End If End Sub

Dovresti anche essere consapevole che il valore di questa macro dipende, in gran parte, da ciò che hai visibile nelle tue finestre. Se i nastri sono alla loro profondità verticale completa, occupa molto spazio sullo schermo. In effetti, potrebbe essere necessario così tanto che anche se la finestra superiore occupa il 25% dell’altezza dello schermo, potrebbe non mostrare alcuna riga del foglio di lavoro perché lo spazio è occupato dalla barra multifunzione e da altri elementi dell’interfaccia.

Ci sono due possibili soluzioni. Il primo è ridurre al minimo gli elementi dello schermo, come il nastro. (Fare doppio clic su qualsiasi scheda della barra multifunzione per ridurre a icona la barra multifunzione.) L’altra soluzione, ovviamente, è fare in modo che la macro utilizzi calcoli diversi per determinare le dimensioni finali delle finestre. (Le altezze finali della finestra sono nelle variabili Ht1a e Ht2a.)

_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 (13380) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.