To makro je potrebné zapracovať do toho Tvojho, lebo to všetko sa má odohrávať pri tej istej udalosti: zmene v hárku. To moje nemôžeš len takto strojnásobiť, lebo v prípade, že nie je splnená prvá podmienka (test, či sa zmenila hodnota v oblasti stĺpca A), tak sa všetok nasledujúci kód ignoruje a makro končí. Takže ja by som použil Select Case na výber úkonov podľa toho, v ktorom stĺpci sa nachádza Target. A na začiatku by mohol byť rozsah riadkov (predpokladám, že rovnaký pre všetky spracovávané stĺpce) ošetrený práve tak, že v prípade, že Target je mimo tohto rozsahu riadkov, tak makro skončí. A máš tam chybu, nemôžeš testovať či sa udiala zmena v stĺpci D a zároveň dať naplniť hodnotu v tom istom stĺpci, to by sa Ti zacyklilo. To si sa asi pomýlil, veď aj Tvoj vzorec mal podľa obsahu bunky v stĺpci A určiť hodnotu v stĺpci C!
Takže Tvoj prípad by vyzeral takto:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row < 10 Or Target.Row > 5000 Then Exit Sub
Select Case Target.Column
Case 3
't.j. v prípade zmeny v stĺpci C nastavuje obsah v stĺpci D:
If Target = "" Then
Range("D" & Target.Row) = ""
Else: Range("D" & Target.Row) = "tuzemsko"
End If
Case 10
't.j. v prípade zmeny v stĺpci J nastavuje obsah v stĺpci K:
If Target = "" Then
Range("K" & Target.Row) = ""
Else: Range("K" & Target.Row) = "1"
End If
Case 20
't.j. v prípade zmeny v stĺpci T nastavuje obsah v stĺpci U:
If Target = "" Then
Range("U" & Target.Row) = ""
Else: Range("U" & Target.Row) = "N"
End If
'atď
Case Else
Exit Sub
End Select
End Sub