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