Hi lapot
Well, I found it easier to simply rewrite the Code...too many selects. So, this Code is in the attached. No Temp Worksheet required.
Open up to Sheet Form...Ctrl + x will fire the Code.
Option Explicit
Sub Fill_Form()
Dim tWs As Worksheet
Dim sWs As Worksheet
Dim sWSrng As Range
Dim sWScel As Range
Dim myCells As Range
Set tWs = Sheets("Form")
Set sWs = Sheets("Figures")
Application.ScreenUpdating = False
With sWs
.Range("Table_Query_from_Partner4[[#Headers],[PAYEE:]]").AutoFilter
.ListObjects("Table_Query_from_Partner4").Range.AutoFilter Field:=10, Criteria1:="<>"
Set sWSrng = .ListObjects("Table_Query_from_Partner4").ListColumns(1).DataBodyRange.SpecialCells(xlCellTypeVisible)
For Each sWScel In sWSrng
With tWs
Set myCells = Union(.Range("F12:M12"), .Range("F13:M13"), .Range("F15:M15"), .Range("F17:M17"), .Range("F19:M19"), .Range("F21:G21"), .Range("M21:M21"))
myCells.ClearContents
End With
tWs.Cells(13, "F").Value = sWScel.Offset(0, 9).Value 'Column J
tWs.Cells(15, "F").Value = sWScel.Offset(0, 0).Value 'Column A
tWs.Cells(17, "F").Value = sWScel.Offset(0, 4).Value 'Column E
tWs.Cells(19, "F").Value = sWScel.Offset(0, 21).Value 'Column Y
tWs.Cells(21, "F").Value = sWScel.Offset(0, 25).Value 'Column Z
tWs.Cells(21, "M").Value = sWScel.Offset(0, 26).Value 'Column AA
tWs.Range("F12").FormulaR1C1 = "=SpellNumber(R[1]C)"
With Sheets("Form").PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
' ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveSheet.PrintPreview
Next sWScel
.Range("Table_Query_from_Partner4[[#Headers],[PAYEE:]]").AutoFilter
End With
Application.ScreenUpdating = True
End Sub
To actually Print the Form change this from Preview to Printout.
' ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveSheet.PrintPreview
Bookmarks