Condividi tramite

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

Anonimo
2010-10-15T14:56:17+00:00

Eccomi agian, ma meno male che è venerdì, per Voi ma nn per me!!

Scherzi a parte

Ho un FOGLIO1, all'interno di un file, che è SEMPRE composto da tre pagine e così deve restare.

Vorrei a fine pagina, centrato, poter inserire il numero di pagina così facendo:

AD ESEMPIO SULLA PAGINA 1

Se la cella A1 della pagina 1 è compilata (contiene un valore qualsiasi numerico)= pagina 1 di 1

Se la cella A1 e A65 della pagina 1  e della pagina 2 è compilata (contiene un valore qualsiasi numerico)= pagina 1 di 2

Se la cella A1, A65 e A125 della pagina 1, della pagina 2 e della pagina 3 è compilata (contiene un valore qualsiasi numerico)= pagina 1 di 3

E questo è il primo passo.

Poi vorrei che premendo un pulsante mandare in stampa solo ed esclusivamente le pagine che contengono il famoso valore nella cella A1, in quella A65 ed infine tutte e tre se c'è anche A125

A1 compilato solo in pagina 1, stampa solo pagina 1

A1 compilato in pagina 1 e pagina 2 stampa pagina 1 e 2

A1 compilato in pagina 1, pagina 2 e pagina 3,  stampa pagina 1,2 e 3

 E con questo farei Bingo, per questa settimana!!

Grazie mille e buoni giri in moto a tutti!

Andrea

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

  1. Anonimo
    2010-10-25T10:32:52+00:00

    ciao Mauro ecco:

     

    pagina 1 da riga 1 a 60

     

    pagina 2 da riga 61 a 120

     

    pagina 3 da riga 121 a 180

     

    Grazie mille e buono SMAU!

     

    Andrea

     

     

    Proviamo. Foglio1, tre pagine da stampare con i riferimenti che hai messo tu. Quindi la pagina sarà da stampare solo se, rispettivamente, avrà le celle A1, A61, A121 con un valore. Prova questo codice:

    Public Sub m()

        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 180 Step 60

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

                    lTot = lTot + 1

                End If

            Next

            For lng = 1 To 180 Step 60

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

                    lCont = lCont + 1

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

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

                    .PageSetup.PrintArea = "A" & lng & ": D" & lng + 59

                    .PrintOut

                    .PageSetup.PrintArea = ""

                End If

            Next

            .Range("A60,A120, A180").Value = ""

        End With

        Set sh = Nothing

    End Sub

    NOTA. In questo esempio la scritta pagina n di pagine nn si troverà rispettivamente in A60, A120, A180 e verrà cancellata una volta stampata la pagina. Fai sapere se è quello che volevi, 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 la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento

15 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-10-15T16:24:46+00:00

    ok tipo A60  A 120 e A180

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-10-15T16:15:59+00:00

    ho corretto la domanda iniziale

     

    Risultato che si ottiene ad esempio sulla pagina 1 del foglio1:

     

    In sostanza se la cella A1 contiene un valore mi deve scrivere,in fondo alla pagina "pagina 1 di 1" e stampare solo questa pagina in automatico premendo un pulsante o meglio aprire l'anteprima per un controllo pre stampa

    se la cella A1 e cella A 65 contengono valori mi deve scrivere "pagina 1 di 2" e stampare le due pagine

    se la cella A1 la cella A65 e cella A 125 contengono valori mi deve scrivere "pagina 1 di 3" e stampare le tre pagine

     

    Una domanda mia: ma non possiamo scrivere pag n di pagg nn direttamente in una cella senza gestire per forza il piè di pagina? Sarebbe tutto più semplice. 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 la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-10-15T16:09:16+00:00

    ho corretto la domanda iniziale

    Risultato che si ottiene ad esempio sulla pagina 1 del foglio1:

    In sostanza se la cella A1 contiene un valore mi deve scrivere,in fondo alla pagina "pagina 1 di 1" e stampare solo questa pagina in automatico premendo un pulsante o meglio aprire l'anteprima per un controllo pre stampa

    se la cella A1 e cella A 65 contengono valori mi deve scrivere "pagina 1 di 2" e stampare le due pagine

    se la cella A1 la cella A65 e cella A 125 contengono valori mi deve scrivere "pagina 1 di 3" e stampare le tre pagine

    Merci

    PS sono rimasto senza parole per l'altra risposta, mi sarà utilissima!!

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-10-15T15:36:19+00:00

    Ho un foglio di lavoro che è SEMPRE composto da tre pagine e così deve restare.

    Vorrei a fine pagina, centrato, poter inserire il numero di pagina così facendo:

     

    PAGINA 1

    Se la cella A1 della pagina 1 è compilata (contiene un valore qualsiasi numerico)= pagina 1 di 1

    Se la cella A1 della pagina 1  e della pagina 2 è compilata (contiene un valore qualsiasi numerico)= pagina 1 di 2

    Se la cella A1 della pagina 1, dela pgina 2 e della pagina 3 è compilata (contiene un valore qualsiasi numerico)= pagina 1 di 3

    E questo è il primo passo.

    Poi vorrei che premendo un pulsante mandare in stampa solo ed esclusivamente le pagine che contengono il famoso valore nella cella A1

    A1 compilato solo in foglio 1, stampa solo pagina 1

    A1 compilato in foglio 1 e foglio 2 stampa pagina 1 e 2

    A1 compilato in foglio 1, foglio 2 e foglio 3,  stampa pagina 1,2 e 3

    Spiega cosa intendi per pagine. E di conseguenza cosa è la cella A1 di ciascuna pagina. Posso immaginarlo, ma voglio una conferma. Pagina è pagina e foglio è foglio.


    --

    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 la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento