Try this:
Option Explicit
Private intPreviousRow As Integer, intPreviousColumn As String
Private strPreviousRow As Integer, strPreviousColumn As String
Private strPreviousCell As String
Private blnChangeFlag As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strPreviousCellText As String
'check to see if the flag has been changed from the ChangeData routine
If blnChangeFlag = True Then
strPreviousCellText = Range(strPreviousCell).Text
If UCase(strPreviousCellText) = "CROSS" Then
ChangeData
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim strRow As String, strColumn As String
Dim intColumn As Integer
intPreviousRow = ActiveCell.Row
blnChangeFlag = True
intColumn = ActiveCell.Column
intPreviousColumn = intColumn + 64
strPreviousColumn = Chr$(Val(intPreviousColumn))
strPreviousCell = strPreviousColumn & LTrim(Str(intPreviousRow))
End Sub
Private Sub ChangeData()
Dim intDeltaRow As Integer, intEpsilonRow As Integer, intKappaRow As Integer
Dim strDeltaCell As String, strEpsilonCell As String, strKappaCell As String
blnChangeFlag = False 'Set to false because Worksheet_Change will be triggered
' when the data is changed below
intDeltaRow = intPreviousRow + 1
intEpsilonRow = intPreviousRow + 2
intKappaRow = intPreviousRow + 3
strDeltaCell = strPreviousColumn & LTrim(Str(intDeltaRow))
strEpsilonCell = strPreviousColumn & LTrim(Str(intEpsilonRow))
strKappaCell = strPreviousColumn & LTrim(Str(intKappaRow))
Range(strDeltaCell).FormulaR1C1 = "delta"
Range(strEpsilonCell).FormulaR1C1 = "epsilon"
Range(strKappaCell).FormulaR1C1 = "kappa"
blnChangeFlag = True
End Sub