Per gestire la macro che ti ho dato non e' necessario un libro, bastano poche informazioni:
-da excel, col tuo file aperto, premi Alt-F11 e ti si aprira' l' editor delle macro;
-Menu /Inserisci /Foglio
-copia la macro e incollalo nel frame bianco a dx
-torna su excel, sul foglio in cui esiste il tuo elenco
-lancia la macro:
--Alt-F8, ti si presenta l' elenco delle macro disponibili
--selezioni "Indice" e premi Esegui
La macro prepara una copia dei tuoi dati, in un nuovo foglio, e su questo inserisce il numero di pagine; poi ordina per codice crescente.
Ho variato la macro per adattarla ai dati che hai fornito; il nuovo codiec e' questo:
- Codice: Seleziona tutto
Sub Indice()
'
TocCol = "G"
StrR = 14
'
AShN = ActiveSheet.Name
MaxR = Cells(Rows.Count, 1).End(xlUp).Row
'
I = StrR
Sheets(AShN).Copy After:=Worksheets(Worksheets.Count)
Range(TocCol & ":" & TocCol).Range("A:Z").ClearContents
Range("A1").Select
ActiveWindow.View = xlPageBreakPreview
For Each PB In ActiveSheet.HPageBreaks
PCount = PCount + 1
NextPRow = PB.Location.Row
Do While I < NextPRow
Cells(I, TocCol).Select
ActiveCell.Value = PCount: I = I + 1
Application.ScreenUpdating = False
Loop
Application.ScreenUpdating = True
Next PB
'
Cells(I, TocCol).Select
ActiveCell.Value = PCount + 1
If ActiveCell.Row < MaxR Then
Cells(I, TocCol).Range("A1:A" & MaxR - I + 1).FillDown
End If
ActiveWindow.View = xlNormalView
'
Columns(TocCol & ":" & TocCol).NumberFormat = "0"
Columns(TocCol & ":" & TocCol).EntireColumn.AutoFit
'
Columns("A:" & TocCol).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'
If Cells(1, TocCol).Column > 2 Then
Range("A1").Resize(1, Cells(1, TocCol).Column - 2).EntireColumn.Delete Shift:=xlToLeft
Range("A1").Select
End If
End Sub
Prova e fai sapere; ciao.