Come aumentare l’altezza delle righe di una percentuale

Giada lavora con molti fogli di lavoro abbastanza lunghi che contengono dati che potrebbe dover stampare. Una volta effettuata la stampa, scrive nello spazio accanto alla colonna dei dati. Tutte le righe vengono ridimensionate automaticamente per adattarsi ai contenuti, pertanto variano in altezza. Giada sta cercando una macro che prenda le righe selezionate e le aumenti di una determinata percentuale (poiché hanno altezze diverse, non può semplicemente impostarle tutte alla stessa altezza). In questo modo, può rendere le righe sufficientemente alte 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 quella che era prima della stampa.

Questa attività è molto semplice da eseguire con una macro. Tutto quello che devi fare è scorrere le righe selezionate e regolare la proprietà RowHeight, come avviene 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%. Il valore di questa variabile può essere modificato per riflettere la percentuale che desideri utilizzare oppure puoi modificare la macro per chiedere all’utente una percentuale:

 

Sub ExpandSelectedRows()
    Dim rRow As Range
    Dim dEnlarge As Double
    Dim sTemp As String
    sTemp = InputBox("Di quale percentuale incrementare?")
    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 desideri 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 nel foglio di lavoro originariamente erano “dimensionate automaticamente per adattarsi ai contenuti”. Anche se si sarebbe potuto scrivere una macro 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.

 

 

 

 

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

Ti è stato utile?