cambio pagina cambio valore cella

Anonimo
2011-05-09T06:14:30+00:00

Salve, il mio foglio di excel contiene dati nel range A2:D10000.

Avrei la necessità che al cambio del valore della cella A possa inserire una interruzione pagina.

In rete ho trovato questo codice

Public Sub m()

'gestione errori

On Error GoTo RigaErrore

'dichiaro le variabili

Dim wk As Workbook

Dim sh As Worksheet

Dim rng As Range

Dim lUltRiga As Long

Dim c As Range

Dim lng As Long

'metto il riferimento al

'Workbook che contiene

'il codice

Set wk = ThisWorkbook

'metto il riferimento al

'Foglio1 di questo Workbook

With wk

Set sh = .Worksheets("Foglio1")

End With

With sh

'elimino le vecchie interruzioni

For lng = .HPageBreaks.Count To 1 Step -1

.HPageBreaks(lng).Delete

Next

'trovo l'ultima riga

'della colonna A con un valore

lUltRiga = .Range("A" & _

.Rows.Count).End(xlUp).Row

'metto un riferimento al Range

Set rng = .Range("A2:A" & lUltRiga)

'ciclo il Range

For Each c In rng

'se il valore cambia

If c.Value <> c.Offset(-1, 0).Value Then

'inserisco l'interruzione di pagina

.HPageBreaks.Add Before:=.Range(c.Address)

End If

Next

End With

'riga sempre eseguita

RigaChiusura:

'Set a Nothing delle variabili oggetto

Set c = Nothing

Set rng = Nothing

Set sh = Nothing

Set wk = Nothing

Exit Sub

'gestione errori

RigaErrore:

'MsgBox con numero e descrizione errore

'che può essere modificata a piacere

MsgBox Err.Number & vbNewLine & Err.Description

'vai alla riga chiusura

Resume RigaChiusura

End Sub

ma al lancio della macro ottengo un errore 1004, errore definito dall'aplicazione o dall'oggetto.

Suggerimenti?

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-05-09T08:37:16+00:00

Il foglio è Foglio1, un po di VBA lo mastico.

La cosa che non mi torna è che se utilizzo in tutto 40-50 celle funziona, se lavoro con i miei dati non funziona.

Per eliminare tutte le interruzioni di pagina senza ciclarle:

 'elimino le vecchie interruzioni

 .ResetAllPageBreaks

Inoltre hai un limite di 1026 interruzioni di pagina. Se il foglio le eccede hai un errore che il codice qui sopra al posto di quello vecchio dovrebbe specificare.

--

18

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-05-09T11:17:28+00:00

    Pare che con qusta riga di codice vada tutto bene.

    Grazie ancora

    Fid

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-05-09T07:37:07+00:00

    Il foglio è Foglio1, un po di VBA lo mastico.

    La cosa che non mi torna è che se utilizzo in tutto 40-50 celle funziona, se lavoro con i miei dati non funziona.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-05-09T06:40:03+00:00

    Salve, il mio foglio di excel contiene dati nel range A2:D10000.

    Avrei la necessità che al cambio del valore della cella A possa inserire una interruzione pagina.

    In rete ho trovato questo codice

    <cut>

    ma al lancio della macro ottengo un errore 1004, errore definito dall'aplicazione o dall'oggetto.

    Suggerimenti?

    Grazie

    Come si chiama il tuo foglio? L'esempio che hai postato(sembra uno dei miei figli...;-)) presume che il foglio sia il Foglio1. Prova a modificare il nome con quello del tuo foglio.

    --

    18

    La risposta è stata utile?

    0 commenti Nessun commento