Hi,
If you need to produce all the contracts in 1 go, then what you need to do is to have a list somewhere of the 1 piece of information that can be used to derive the rest of the information.
For example - if it was an agent ID, then produce a list of the Agent ID's, and in the contract page, use VLOOKUP to reference the entered ID to obtain the relevant details.
Then write a macro that references the list, and walk through that list 1 at a time, passing the ID to the contract, and then either storing a copy of that contract as a seprate 1 page workbook, or printing it out.
HTH
PS - if you want an example then see below:
NB - You will need to have set the directory referred to below up, otherwise it won't work.
Option Explicit
Sub savethem()
Dim intrwindex As Integer
Dim Live_Book As String
Dim New_Book As String
Dim New_name As String
Dim agent As String
Dim i As String
Live_Book = ActiveWorkbook.Name
Sheets("Statement").Select
For intrwindex = 1 To 35
agent = Worksheets("List").Cells(intrwindex, 1).Value
Worksheets("Statement").Range("C4").Value = agent
Sheets("Statement").Select
Sheets("Statement").Activate
Sheets("Statement").Copy
New_Book = ActiveWorkbook.Name
Workbooks(Live_Book).Activate
Sheets("Statement").Select
Range("F13:J75").Select
Selection.Copy
Windows(New_Book).Activate
Range("F13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
New_name = "Statement for " & Range("C4").Value & ".xls"
' save the file
ActiveWorkbook.SaveAs Filename:= _
"C:\Agent Statements\" & New_name, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.Close
Next_Unit:
Live_Book = ActiveWorkbook.Name
Next intrwindex
End Sub