I am using the example on Chip Pearson's web page http://www.cpearson.com/excel/vbe.htm for creating an even procedure in another workbook for formatting printed output from that workbook.
I have modified his code as follows:
Sub CopytoThisWorkbook()
Dim StartLine As Long
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
StartLine = .CreateEventProc("BeforePrint", "Workbook") + 1
.InsertLines StartLine, _
" dim NumRows as integer" & vbCr & _
" NumRows = Activesheet.usedrange.rows.count" & vbCr & _
" With Activesheet.pagesetup" & vbCr & _
" .PrintTitleRows = ""$2:$3""" & vbCr & _
" .PrintArea = ""$A$4:$K$"" & NumRows" & vbCr & _
" .PrintHeadings = False" & vbCr & _
" .PrintGridlines = False" & vbCr & _
" .PrintComments = xlPrintNoComments" & vbCr & _
" End With"
End With
End Sub
It works as expected and creates the Workbook_BeforePrint procedure. However whenever the code runs it opens a VBA window and shows the newly created code. No errors, just gives focus to the VBA window. This isn't a problem for me while I'm programming/debugging, but the end user shouldn't see this.
Any ideas why this is happening and how to keep it from happening?
Thanks for any help/suggestions.
Bookmarks