EDIT:
Inak ak by ste chcel robiť psie kusy s každou zmenenou bunkou v C od riadku 2, tak napr:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Bunka As Range, Hodnota
Set Zmena = Intersect(Columns(3).Resize(Rows.Count - 1).Offset(1, 0), Target)
If Not Zmena Is Nothing Then
Application.EnableEvents = False: Application.ScreenUpdating = False
For Each Bunka In Zmena
Hodnota = Bunka
'Tu si robte čo chcete s každou zmenenou bunkou v 3. stĺpci
If Not IsNumeric(Hodnota) Then
If CStr(Hodnota) <> "" Then
Cells(Bunka.Row, 2) = "=IF(RC[1]="""","""",R[-1]C+1)"
Else
Cells(Bunka.Row, 5) = ""
End If
End If
Next Bunka
Set Bunka = Nothing
Application.EnableEvents = True: Application.ScreenUpdating = True
End If
Set Zmena = Nothing
End Sub
Ale to čo tam v strede máte ako jadro kódu ... no neviem ... podľa mňa to nefunguje. Keďže vkladáte vzorec na číslo len v prípade, že bol v C vložený text, tak ak tam bude vložené číslo a po ňom text, tak sa nemá odkiaľ pripočítať 1. Dá Vám to chybu. Rovnako by ste mal pri zmene na číslo v C, zmazať vzorec na číslo, keď píšete, že tam má byť očíslovanie iba v prípade textu. To samozrejme znefunkční vzorec, tak ako ho máte.
Trochu to lepšie popíšte.