Stampare ANCHE righe vuote

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Gi@nni62
00domenica 22 maggio 2016 21:21
Buongiorno a tutti. In passato ho già usufruito della vostra bontà ed ora oso nel chiedere nuovamente come risolvere un mio problema.
Ho creato una semplice rubrica telefonica con excel 2016; Tre semplici colonne: COGNOME;NOME;NUMERO di telefono.
So come applicare un filtro (dal menù) per poter vedere solo la lettera che mi interessa volta per volta.
Il mio problema è che vorrei stampare su piu' fogli le pagine di questa rubrica, INSERENDO delle righe vuote fino alla fine del foglio quando cambia la lettera alfabetica e poi cambiare pagina iniziando dalla lettera alfabetica successiva. Potrei anche stampare lettera per lettera, ma cio' che mi interessa è che stampi ANCHE righe vuote fino alla fine del foglio.
Questo mi serve per poter inserire a penna altri nominativi e stampare nuovamente quella lettera ogni sei o sette aggiunte di nuovi numeri.
In pratica come si puo' riempire il foglio in fase di stampa con righe vuote sulle quali poi scriverci a penna?
Se in altre discussioni è gia' stato affrontato il problema, mi scuso, ma io ho trovato solo il contrario (non far stampare righe vuote). Se devo allegare un file di esempio, disposto a farlo, ma credo di essere stato abbastanza esplicito (almeno credo!)
Grazie a chi vorrà aiutarmi [SM=x423047]
Gianni
versione EXCEL 2016
Livello Visual Basic: so cosa è e come inserirlo nel foglio di lavoro. Poi niente altro [SM=x423027]
federico460
00domenica 22 maggio 2016 21:44
ciao
siamo all'ennesimo rispondo ma non vedo il file [SM=g27833]

se hai come immagino un foglio per ogni lettera
basta che strutturi il foglio come una tabella
disegnando le righe o più facilmente creando una vera tabella.
ecco che se stampi le righe saranno visibili .

se non è cosi dovresti mettere un esempio del tuo file


basta inventarsi i nomi o mettere lettere numeri quello che vuoi.

ciao
Gi@nni62
00domenica 22 maggio 2016 22:08
Avete perfettamente ragione. Occorre inserire un file di esempio su cui poter lavorare. Chiedo venia. [SM=x423047]
La mia rubrica sta tutta su un foglio di lavoro. E' in fase di stampa che vorrei poter separare le varie lettere inserendo righe vuote tra una lettera e la successiva (che dovra' iniziare su un nuovo foglio). O al massimo stampare lettera per lettera, ma inserendo righe vuote fino alla fine del foglio.
Il file di esempio non contiene alcuna macro e suppongo io non debba comprimerlo. Speriamo bene!
Gianni
Excel 2016
raffaele1953
00lunedì 23 maggio 2016 05:16
Vai sul foglio, premi ALT+F11, incolla il VBA sulla destra (salva come .xlsm), creati un bottone e collegalo a Stampa_Elenco()
Dalla colonna A, dove hai messo le lettere A,B,C crea in colonne H:J i Cognomi con la stessa iniziale + dati e stampa automaticamente.
In base all'altezza delle righe, controlla quante righe stampa la Tua stampante in verticale su una pagina. Casomai modifica la riga3 da >>>Righe = 50 in Righe = Xy
Public Righe As Long
Sub Stampa_Elenco()
Dim Ur, Y, X, Rg
Righe = 50
Ur = Range("A" & Rows.Count).End(xlUp).Row + 1
Application.ScreenUpdating = False
    For X = 3 To Ur
        Range("A1:C1").Copy
        Range("H1").PasteSpecial
        Rg = 2
        For Y = 1 To Righe
            If Len(Cells(X, 1)) <> 1 Then
                If Rg <= Righe Then
                    Range(Cells(X, 1), Cells(X, 3)).Copy
                    Range("H" & Rg).PasteSpecial
                    Rg = Rg + 1
                    X = X + 1
                Else
                    Call Borda
                    Sheets("Foglio1").Range("H1:J" & Righe).PrintOut
                    Sheets("Foglio1").Range("H1:J" & Righe).Clear
                    Range("A1:C1").Copy
                    Range("H1").PasteSpecial
                    Rg = 2
                    Y = 1
                End If
            ElseIf Len(Cells(X, 1)) = 1 Then
                Call Borda
                Sheets("Foglio1").Range("H1:J" & Righe).PrintOut
                Sheets("Foglio1").Range("H1:J" & Righe).Clear
                Exit For
            End If
        Next Y
    Next X
MsgBox "Fatto"
Application.ScreenUpdating = True
End Sub
Sub Borda()
    Sheets("Foglio1").Range("H1:J" & Righe).Borders(xlDiagonalDown).LineStyle = xlNone
    Sheets("Foglio1").Range("H1:J" & Righe).Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Sheets("Foglio1").Range("H1:J" & Righe).Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Sheets("Foglio1").Range("H1:J" & Righe).Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Sheets("Foglio1").Range("H1:J" & Righe).Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Sheets("Foglio1").Range("H1:J" & Righe).Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Sheets("Foglio1").Range("H1:J" & Righe).Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
End Sub
Gi@nni62
00lunedì 23 maggio 2016 15:09
Grazie
Grazie raffaele1953.
Ora stampa anche le righe vuote.
Causa la mia scarna conoscenza del Visual Basic non so come inserire il bottone e come collegarci il codice. Ma poco male poiche' posso far girare la macro dal menu' dei comandi ed è gia' sufficiente così. In fondo non devo stampare ogni giorno, ma ogni tanto, per cui un passaggio in piu' non mi è gravoso. Era questo il risulatato che volevo ottenere
Grazie ancora. [SM=x423028]
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 03:00.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com