Come stampare una singola colonna in più colonne

A volte i dati raccolti in un foglio di lavoro si adattano molto bene a una singola colonna. Ad esempio, potresti avere un elenco di nomi e sono tutti contenuti nella colonna A del tuo foglio di lavoro. Quando si sceglie di stampare il foglio di lavoro, la stampa può consumare parecchie pagine, tutte quasi vuote poiché il lato sinistro di ogni pagina contiene un nome e il lato destro contiene uno spazio bianco.

In questo tipo di istanza, sarebbe carino stampare la singola colonna come se fossero più colonne. In questo modo potresti utilizzare meno pagine complessive per il tuo lavoro di stampa. Sfortunatamente, Excel non contiene comandi intrinseci o impostazioni di stampa che ti consentano di riformattare automaticamente i tuoi dati in modo che vengano stampati meglio. Esistono tuttavia soluzioni alternative.

Una soluzione alternativa che spesso viene trascurata è semplicemente copiare l’elenco a colonna singola in un documento Word vuoto. Se lo incolli lì come testo normale, puoi formattare ciascuna pagina per più colonne e stampare effettivamente le informazioni.

Se preferisci non coinvolgere Word, puoi tagliare e incollare le informazioni dalla prima colonna in altre colonne per ottenere il numero desiderato di colonne di stampa. Questo, ovviamente, dovrebbe essere fatto in un nuovo foglio di lavoro o cartella di lavoro, in modo che i dati originali rimangano invariati. Ad esempio, se hai 200 nomi nell’elenco originale, puoi tagliare 40 nomi alla volta dall’elenco e incollarli nelle colonne da A a E di un nuovo foglio di lavoro. La stampa di questo foglio di lavoro richiede meno pagine rispetto alla stampa del foglio di lavoro originale a colonna singola.

Naturalmente, se devi fare spesso questo copia e incolla, il lavoro può diventare rapidamente noioso. In questo caso, puoi utilizzare una macro che fa esattamente la stessa cosa: suddivide l’elenco originale e lo incolla in varie colonne su una nuova cartella di lavoro.

 

Sub SingleToMultiColumn()
    Dim rng As Range
    Dim iCols As Integer
    Dim lRows As Long
    Dim iCol As Integer
    Dim lRow As Long
    Dim lRowSource As Long
    Dim x As Long
    Dim wks As Worksheet

    Set rng = Application.InputBox _
      (prompt:="Seleziona l'intervallo da convertire", _
      Type:=8)
    iCols = InputBox("Quante colonne vuoi?")
    lRowSource = rng.Rows.Count
    lRows = lRowSource / iCols
    If lRows * iCols <> lRowSource Then lRows = lRows + 1

    Set wks = Worksheets.Add
    lRow = 1
    x = 1
    For iCol = 1 To iCols
        Do While x <= lRows And lRow <= lRowSource
            Cells(x, iCol) = rng.Cells(lRow, 1)
            x = x + 1
            lRow = lRow + 1
        Loop
        x = 1
    Next
End Sub

 

 

Quando esegui questa macro, ti viene chiesto di selezionare l’intervallo che desideri convertire, quindi ti viene chiesto di specificare il numero di colonne in cui desideri che venga riformattato. La macro crea un nuovo foglio di lavoro nella cartella di lavoro corrente e copia le informazioni dall’originale in tutte le colonne specificate.

Infine, se preferisci non utilizzare una macro, puoi utilizzare una formula per ottenere le righe e le colonne da stampare. Diciamo ancora una volta che hai 200 nomi nella colonna a (nell’intervallo A1:A200) e vuoi stamparli in cinque colonne di 40 righe ciascuna. Puoi inserire questa formula nella cella B1:

=INDIRETTO(INDIRIZZO(RIF.RIGA()+40*RIF.COLONNA(A1);1))

 

Seleziona l’intervallo B1:E40 (assicurati che B1 sia la cella attiva nell’intervallo selezionato), quindi premi F2 e infine Ctrl+Invio. Excel riempie l’intervallo con la formula. Ora puoi selezionare A1:E40 e stampare solo quella selezione (non vuoi stampare l’intero foglio di lavoro perché i dati originali sono ancora nelle 200 righe originali. Ecco perché devi selezionare l’intervallo riformattato e stampare semplicemente quella selezione).

 

 

Tags: , , , , , , , , ,

Ti è stato utile?