Macro che inserisca numeri di pagina e stampi solo se....

Anonimo
2011-03-02T18:03:47+00:00

Salve a tutti,

ho trovato nella discussione

http://answers.microsoft.com/it-it/office/forum/office_2007-excel/macro-che-inserisca-numeri-di-pagina-e-stampi-solo/092ddcc9-265a-45d8-985b-b5be6bd6661f

una risposta a un problema analogo al mio

La sola differenza è che dovrei andare in stampa con la cella A17 compilata invece della A1. ( per motivi di modulistica mi deve rimanere vuota )

Ho provato in diversi modi a modificare la macro descritta, ma non ne sono venuto a capo.

Questa è l’impostazione che attualmente ho dato alla macro ( ho 4 pag. di 42 righe )

Sub Stampa()

    Dim lTot As Long

    Dim lCont As Long

    Dim lng As Long

Dim sh As Worksheet

    Set sh = ThisWorkbook.Worksheets("Foglio1")

    lTot = 0

    lCont = 0

    With sh

        For lng = 1 To 168 Step 42

            If .Cells(lng, 1).Value <> "" Then

                lTot = lTot + 1

            End If

        Next

        For lng = 1 To 168 Step 42

            If .Cells(lng, 1).Value <> "" Then

                lCont = lCont + 1

.Cells(lng + 41, 1).Value = _

                    "Pagina: " & lCont & " di Pagine: " & lTot

.PageSetup.PrintArea = "A" & lng & ": N" & lng + 41

                .PrintOut

                .PageSetup.PrintArea = ""

            End If

        Next

        .Range("A42,A84,A126,A168").Value = ""

End With

    Set sh = Nothing

End Sub

Spero ci sia un utente che mi possa aiutare a risolvere il problema

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-03-03T14:00:46+00:00

Non saprei cos' altro aggiungere

Grazie

Io sì. L'errore che ti restituisce, il messaggio, perchè non lo hai ancora postato. Cosa c'è scritto nel messaggio di errore? La macro, la copi in un modulo standard? Il file deve essere in formato .xls o .xlsm. Vedi qui l'esempio:

http://www.maurogsc.eu/esempiforum11/stampa4pagine.zip

--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu

La risposta è stata utile?

0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-03-03T11:03:15+00:00

    Le pagine sono 4 da 42 righe ognuna

    il foglio ha un'altro nome che ho provveduto a rinominare nella tua stringa.

    Public Sub mStampa()

    Dim lTot As Long

    Dim lCont As Long

    Dim lng As Long

    Dim sh As Worksheet

    Set sh = ThisWorkbook.Worksheets("AI 2011")

    lTot = 0

    lCont = 0

    With sh

    For lng = 1 To 168 Step 42

    If .Cells(lng + 16, 1).Value <> "" Then

    lTot = lTot + 1

    End If

    Next

    For lng = 1 To 168 Step 42

    If .Cells(lng, 1).Value <> "" Then

    lCont = lCont + 1

    .Cells(lng + 41, 1).Value = "Pagina: " & lCont & " di Pagine: " & lTot

    .PageSetup.PrintArea = "A" & lng & ": N" & lng + 41

    .PrintOut

    .PageSetup.PrintArea = ""

    End If

    Next

    .Range("A42,A84,A126,A168").Value = ""

    End With

    Set sh = Nothing

    End Sub

    nel campo A17 è presente un testo, ma la stampa non mi parte in quanto mi da errore (evidenziato in Giallo) già nella prima riga.

    Info supplementare, ci sono delle celle bloccate e quindi è prevista la protezione del foglio.

    Non saprei cos' altro aggiungere

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-03-03T10:48:20+00:00

    ti ringrazio per la velocità nella risposta,

    ma ho ancora dei problemi che non capisco a cosa sono dovuti,

    in quanto non mi erano capitati nelle prove precedenti.

    mi vengono evidenziati questi 2 errori

    Sub mStampa()

    e anche con

    Public Sub mStampa()

    e poi anche sulla stringa

    .Range("A42,A84,A126,A168").Value = ""

    Ciao

    E cosa dicono quegli errori? Sicuro che il foglio si chiami Foglio1 e che nel foglio i riferimenti siano proprio quelli? Rispiego.

    1. Il nome del mio foglio è Foglio1, modificalo con il tuo
    2. Il foglio ha168 righe(4 pagine da 42)
    3. Stampa solo se le pagine hanno qualcosa in: A17/A59/A101/A143
    4. Stampa la scritta Pagina (n) di Pagine (n) in: A42,A84,A126,A168

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-03-03T09:49:24+00:00

    ti ringrazio per la velocità nella risposta,

    ma ho ancora dei problemi che non capisco a cosa sono dovuti,

    in quanto non mi erano capitati nelle prove precedenti.

    mi vengono evidenziati questi 2 errori

    Sub mStampa()

    e anche con

    Public Sub mStampa()

    e poi anche sulla stringa

    .Range("A42,A84,A126,A168").Value = ""

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2011-03-03T07:56:39+00:00

    Salve a tutti,

    ho trovato nella discussione

    http://answers.microsoft.com/it-it/office/forum/office_2007-excel/macro-che-inserisca-numeri-di-pagina-e-stampi-solo/092ddcc9-265a-45d8-985b-b5be6bd6661f

    una risposta a un problema analogo al mio

    La sola differenza è che dovrei andare in stampa con la cella A17 compilata invece della A1. ( per motivi di modulistica mi deve rimanere vuota )

    Ho provato in diversi modi a modificare la macro descritta, ma non ne sono venuto a capo.

     

    Questa è l’impostazione che attualmente ho dato alla macro ( ho 4 pag. di 42 righe )

     

    <cut>

    Spero ci sia un utente che mi possa aiutare a risolvere il problema

    Grazie

    Se(se) hai quattro pagine da stampare e la discriminante sono le celle A17/A59/A101/A143 (che devono contenere un valore), prova questa:

    Public Sub mStampa()

        Dim lTot As Long

        Dim lCont As Long

        Dim lng As Long

        Dim sh As Worksheet

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        lTot = 0

        lCont = 0

        With sh

            For lng = 1 To 168 Step 42

                If .Cells(lng + 16, 1).Value <> "" Then

                    lTot = lTot + 1

                End If

            Next

            For lng = 1 To 168 Step 42

                If .Cells(lng, 1).Value <> "" Then

                    lCont = lCont + 1

                    .Cells(lng + 41, 1).Value = "Pagina: " & lCont & " di Pagine: " & lTot

                    .PageSetup.PrintArea = "A" & lng & ": N" & lng + 41

                    .PrintOut

                    .PageSetup.PrintArea = ""

                End If

            Next

            .Range("A42,A84,A126,A168").Value = ""

        End With

        Set sh = Nothing

    End Sub

    Per favore, fai gentilmente sapere se hai risolto. Grazie.

    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu

    La risposta è stata utile?

    0 commenti Nessun commento