Sub insertcode()
Dim sCode As String
Dim sCode1 As String
Dim sCode2 As String
Dim iStartLine As Long
sCode = _
"Dim lRowIndex As Long" & vbNewLine & _
"Dim lColIndex As Integer" & vbNewLine & _
"' RTA, OTA" & vbNewLine & _
" With Worksheets(""Rules"")" & vbNewLine & _
" For lRowIndex = 2 To 65535" & vbNewLine & _
" If .Cells(lRowIndex, 9).value = """" Then" & vbNewLine & _
" Exit For" & vbNewLine & _
" Else" & vbNewLine & _
" For lColIndex = 16 To 19" & vbNewLine & _
" If .Cells(lRowIndex, lColIndex).value = """" Then" & vbNewLine & _
" .Cells(lRowIndex, lColIndex).value = 0" & vbNewLine & _
" End If" & vbNewLine & _
" Next lColIndex" & vbNewLine & _
" End If" & vbNewLine & _
" Next lRowIndex" & vbNewLine & _
" End With" & vbNewLine
sCode1 = _
"" & vbNewLine & _
" With Worksheets(""Validity"")" & vbNewLine & _
" For lRowIndex = 2 To 65535" & vbNewLine & _
" If .Cells(lRowIndex, 17).value = """" Then" & vbNewLine & _
" Exit For" & vbNewLine & _
" Else" & vbNewLine & _
" For lColIndex = 17 To 38" & vbNewLine & _
" If .Cells(lRowIndex, lColIndex).value = """" Then" & vbNewLine & _
" ' do nothing" & vbNewLine & _
" Else" & vbNewLine & _
" .Cells(lRowIndex, lColIndex).value = .Cells(lRowIndex, lColIndex).value" & vbNewLine & _
" End If" & vbNewLine & _
" Next lColIndex" & vbNewLine
sCode2 = _
"" & vbNewLine & _
"If .Cells(lRowIndex, 40).value <> """" Then .Cells(lRowIndex, 40).value = .Cells(lRowIndex, 40).value" & vbNewLine & _
"If .Cells(lRowIndex, 41).value <> """" Then .Cells(lRowIndex, 41).value = .Cells(lRowIndex, 41).value" & vbNewLine & _
"If .Cells(lRowIndex, 43).value <> """" Then .Cells(lRowIndex, 43).value = .Cells(lRowIndex, 43).value" & vbNewLine & _
"If .Cells(lRowIndex, 44).value <> """" Then .Cells(lRowIndex, 44).value = .Cells(lRowIndex, 44).value" & vbNewLine & _
"If .Cells(lRowIndex, 46).value <> """" Then .Cells(lRowIndex, 46).value = .Cells(lRowIndex, 46).value" & vbNewLine & _
"If .Cells(lRowIndex, 47).value <> """" Then .Cells(lRowIndex, 47).value = .Cells(lRowIndex, 47).value" & vbNewLine & _
"If .Cells(lRowIndex, 49).value <> """" Then .Cells(lRowIndex, 48).value = .Cells(lRowIndex, 49).value" & vbNewLine & _
"If .Cells(lRowIndex, 50).value <> """" Then .Cells(lRowIndex, 50).value = .Cells(lRowIndex, 50).value" & vbNewLine & _
"If .Cells(lRowIndex, 52).value <> """" Then .Cells(lRowIndex, 52).value = .Cells(lRowIndex, 52).value" & vbNewLine & _
"If .Cells(lRowIndex, 53).value <> """" Then .Cells(lRowIndex, 53).value = .Cells(lRowIndex, 53).value" & vbNewLine & _
"If .Cells(lRowIndex, 55).value <> """" Then .Cells(lRowIndex, 55).value = .Cells(lRowIndex, 55).value" & vbNewLine & _
"If .Cells(lRowIndex, 56).value <> """" Then .Cells(lRowIndex, 56).value = .Cells(lRowIndex, 56).value" & vbNewLine & _
"If .Cells(lRowIndex, 58).value <> """" Then .Cells(lRowIndex, 58).value = .Cells(lRowIndex, 58).value" & vbNewLine & _
"If .Cells(lRowIndex, 59).value <> """" Then .Cells(lRowIndex, 59).value = .Cells(lRowIndex, 59).value" & vbNewLine & _
"If .Cells(lRowIndex, 61).value <> """" Then .Cells(lRowIndex, 61).value = .Cells(lRowIndex, 61).value" & vbNewLine & _
"If .Cells(lRowIndex, 62).value <> """" Then .Cells(lRowIndex, 62).value = .Cells(lRowIndex, 62).value" & vbNewLine & _
"If .Cells(lRowIndex, 64).value <> """" Then .Cells(lRowIndex, 64).value = .Cells(lRowIndex, 64).value" & vbNewLine & _
"If .Cells(lRowIndex, 65).value <> """" Then .Cells(lRowIndex, 65).value = .Cells(lRowIndex, 65).value" & vbNewLine & _
" End If" & vbNewLine & _
" Next lRowIndex" & vbNewLine & _
" End With" & vbNewLine
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
iStartLine = .CreateEventProc("BeforeClose", "Workbook") + 1
.InsertLines iStartLine, sCode & sCode1 & sCode2
End With
End Sub