Jeaux lavora con molti fogli di lavoro lunghi che contengono dati che potrebbe dover stampare. Una volta stampato, scrive quindi nello spazio accanto alla colonna dei dati. Tutte le righe vengono ridimensionate automaticamente per adattarsi ai contenuti, quindi variano in altezza. Jeaux sta cercando una macro che prenda le righe selezionate e le aumenti in modo incrementale, diciamo di una data percentuale. (Dato che sono altezze diverse, non può semplicemente impostarle tutte alla stessa altezza.)

In questo modo, può rendere le righe abbastanza grandi per la scrittura a mano, ma essere comunque in grado di vedere tutti i dati. Sarebbe anche bello avere un modo per riportare l’altezza delle righe a quello che erano prima della stampa.

Questa operazione è molto semplice da eseguire con una macro. Tutto quello che devi fare è scorrere le righe selezionate e regolare la proprietà RowHeight, come si fa in questa macro:

Sub ExpandSelectedRows()

Dim rRow As Range     Dim dEnlarge As Double

dEnlarge = 1.25     For Each rRow In Selection.Rows         rRow.RowHeight = rRow.RowHeight * dEnlarge     Next End Sub

In questo caso, la variabile dEnlarge contiene 1,25, il che significa che la formula nel ciclo For …​ Next aumenterà l’altezza della riga del 25 percento. Il valore di questa variabile può essere cambiato per riflettere la percentuale che vuoi usare, oppure puoi modificare la macro per chiedere una percentuale all’utente:

Sub ExpandSelectedRows()

Dim rRow As Range     Dim dEnlarge As Double     Dim sTemp As String

sTemp = InputBox("Increase by what percent?")

dEnlarge = Val(sTemp)

If dEnlarge > 1 Then dEnlarge = dEnlarge / 100     If dEnlarge < 1 Then dEnlarge = dEnlarge + 1

If dEnlarge > 0 Then         For Each rRow In Selection.Rows             rRow.RowHeight = rRow.RowHeight * dEnlarge         Next     End If End Sub

Se in seguito vuoi riportare le righe alla loro altezza originale, la seguente macro a riga singola farà il lavoro:

Sub AutfitRows()

Cells.EntireRow.AutoFit End Sub

Questa macro funziona perché le righe del foglio di lavoro originariamente erano “ridimensionate automaticamente per adattarsi ai contenuti”. Anche se una macro avrebbe potuto essere scritta per invertire i passaggi di ingrandimento (dividendo per dEnlarge invece di moltiplicare), funzionerebbe in modo affidabile solo se la macro ExpandSelectedRows non fosse stata eseguita più volte.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (21) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.