stampare due colonne lunghissime

Anonimo
2011-04-26T14:16:18+00:00

Ho 5000 righe ma solo 2 colonne.

Vorrei poter stampare in modo che su ogni a4 comparissero più gruppi di 2 colonne, come se incolonnasse le voci fino a finirre il foglio e poi andare sul foglio2

Le impostazioni di excel per quanto vedo permettono solo di scalare le singole 2 colonne.

altrimenti dovrei intabellare io i gruppi di voci per come voglio che stampi l'A4, ma su 5000 voci, nn è semplice!!

Grazie.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2011-04-29T12:27:52+00:00

Col tuo codice si creano 3 gruppi da due colonne.

Invece io dovrei avere 3 gruppi da 3 colonne di dati.

Le 3 colonne hanno larghezza diversa.

Se è un problema nn mi costerà cmq nulla farlo manualmente

Grazie.

Io sono stato con quanto avevi postato all'inizio....;-)

Questa lavora per tre colonne:

Public Sub m()

    Dim lRighe As Long

    Dim lRiga As Long

    Dim sh1 As Worksheet

    Dim sh2 As Worksheet

    Dim lng As Long

    Dim lCol As Long

    With ThisWorkbook

         Set sh1 = .Worksheets("Foglio1")

         Set sh2 = .Worksheets("Foglio2")

    End With

    lCol = 1

    lRiga = 1

    sh2.Cells.ClearContents

    With sh1

         lRighe = .Range("A1").CurrentRegion.Rows.Count

         For lng = 1 To lRighe Step 56

             If lng < lRighe Then

                 If lCol > 6 Then

                     lCol = 1

                     lRiga = sh2.Range("A" & sh2.Rows.Count).End(xlUp).Row

                 End If

                 If lRiga = 1 Then

                     .Range("A" & lng & ":C" & lng + 55).Copy _

                         Destination:=sh2.Cells(lRiga, lCol)

                 Else

                     .Range("A" & lng & ":C" & lng + 55).Copy _

                         Destination:=sh2.Cells(lRiga + 1, lCol)

                 End If

                 lCol = lCol + 3

             End If

         Next

     End With

    Set sh2 = Nothing

    Set sh1 = Nothing

End Sub

NOTA. Puoi formattare precedentemente il foglio di arrivo? Ho modificato il codice perchè la formattazione venga mantenuta. Considera che la macro, fra un lancio e l'altro, pulisce solo il contenuto delle celle in Foglio2, mantenendo eventuali formattazioni di righe/colonne/celle.

Questa invece copia le formattazioni delle colonne del Foglio1 3 a 3 e le imposta nel Foglio2:

Public Sub m()

    Dim lRighe As Long

    Dim lRiga As Long

    Dim sh1 As Worksheet

    Dim sh2 As Worksheet

    Dim lng As Long

    Dim lCol As Long

    With ThisWorkbook

         Set sh1 = .Worksheets("Foglio1")

         Set sh2 = .Worksheets("Foglio2")

    End With

    lCol = 1

    lRiga = 1

    sh2.Cells.ClearContents

    Application.ScreenUpdating = False

    With sh1

         lRighe = .Range("A1").CurrentRegion.Rows.Count

         For lng = 1 To lRighe Step 56

             If lng < lRighe Then

                 If lCol > 6 Then

                     lCol = 1

                     lRiga = sh2.Range("A" & sh2.Rows.Count).End(xlUp).Row

                 End If

                 If lRiga = 1 Then

                     .Range("A" & lng & ":C" & lng + 55).Copy _

                         Destination:=sh2.Cells(lRiga, lCol)

                 Else

                     .Range("A" & lng & ":C" & lng + 55).Copy _

                         Destination:=sh2.Cells(lRiga + 1, lCol)

                 End If

                 lCol = lCol + 3

             End If

         Next

         .Range("A:C").Copy

         sh2.Range("A:C").PasteSpecial Paste:=xlPasteFormats

         sh2.Range("D:F").PasteSpecial Paste:=xlPasteFormats

     End With

    With Application

        .CutCopyMode = False

        .ScreenUpdating = True

    End With

    Set sh2 = Nothing

    Set sh1 = Nothing

End Sub

Ho messo il file utilizzato per l'esempio qui: http://www.maurogsc.eu/esempiforum11/raggruppareperstampa.zip.

Grazie per l'attenzione.

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2011-04-29T09:00:08+00:00

A4 verticale

dovrei riuscire a incolonnare 3 o 4 coppie di codici

la larghezza ancora nn so

nessuna colonna vuota.

grazie.Se può servirti ti allego il file

:D

Scarica RaggruppaPerStampa qui: http://cid-0361684d94bb851a.office.live.com/browse.aspx/ExcelPubblica?uc=1 ed esegui la macro m() (ALT+F8, seleziona m(), esegui). Vedi poi il risultato in Foglio2. Questo è comunque il codice vb:

Public Sub m()

    Dim lRighe As Long

    Dim lRiga As Long

    Dim sh1 As Worksheet

    Dim sh2 As Worksheet

    Dim lng As Long

    Dim lCol As Long

    With ThisWorkbook

        Set sh1 = .Worksheets("Foglio1")

        Set sh2 = .Worksheets("Foglio2")

    End With

    lCol = 1

    lRiga = 1

    sh2.Cells.Clear

    With sh1

        lRighe = .Range("A1").CurrentRegion.Rows.Count

        For lng = 1 To lRighe Step 56

            If lng < lRighe Then

                If lCol > 6 Then

                    lCol = 1

                    lRiga = sh2.Range("A" & sh2.Rows.Count).End(xlUp).Row

                End If

                If lRiga = 1 Then

                    .Range("A" & lng & ":B" & lng + 55).Copy _

                        Destination:=sh2.Cells(lRiga, lCol)

                Else

                    .Range("A" & lng & ":B" & lng + 55).Copy _

                        Destination:=sh2.Cells(lRiga + 1, lCol)

                End If

                lCol = lCol + 2

            End If

        Next

    End With

    Set sh2 = Nothing

    Set sh1 = Nothing

End Sub

Aggiungo che, come si nota dal codice, copio incollo tutto su di un nuovo foglio. Stamperò poi il nuovo foglio.

La risposta è stata utile?

0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-04-29T09:50:20+00:00

    graazie.

    Se dovessi cambiare il num di righe x pagina mi basterà intervenire sul valore step 56 giusto? e rispetto a quello ridurre di 1 ing+55?

    Se volessi invece 3 colonne di valori anzicchè 2 cosa devo modificare?

    cioè riga 1: abc   def   ghi

    riga 2:         lmn    opq   rst

    Si può anche impostare altezza e larghezza delle celle? in modo da andare subito in stampa?

    grazie ancora!

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-04-28T15:23:34+00:00

    A4 verticale

    dovrei riuscire a incolonnare 3 o 4 coppie di codici

    la larghezza ancora nn so

    nessuna colonna vuota.

    grazie.Se può servirti ti allego il file

    :D

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-04-26T18:46:37+00:00

    Ho 5000 righe ma solo 2 colonne.

    Vorrei poter stampare in modo che su ogni a4 comparissero più gruppi di 2 colonne, come se incolonnasse le voci fino a finirre il foglio e poi andare sul foglio2

    Le impostazioni di excel per quanto vedo permettono solo di scalare le singole 2 colonne.

    altrimenti dovrei intabellare io i gruppi di voci per come voglio che stampi l'A4, ma su 5000 voci, nn è semplice!!

    Grazie.

    L'unica cosa che mi viene in mente è affiancare le colonne su di un altro foglio e mandarlo in stampa, il tutto fatto con una macro.

    1. Foglio A4 in verticale o orizzontale?
    2. Larghezza colonne?
    3. Quante colonne per ogni pagina?
    4. Lasciamo una colonna vuota fra un blocco e l'altro?

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento