It seems to me like you're doing a lot of unnecessary looping
You can make the event handler just check the cell(s) that changed
Option Explicit
Const cVrijednost As Long = 11
Const cNapomena As Long = 40
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRange As Range
Dim myCell As Range
If Intersect(Target, Columns(cVrijednost)) Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each myCell In Intersect(Target, Columns(cVrijednost)).Cells
With myCell.EntireRow
If Len(.Cells(cVrijednost).Value) > 0 Then
If .Cells(2).Value = "RF" Then
If .Cells(cVrijednost).Value Like "P-" Or .Cells(cVrijednost).Value Like "POVRV-" Then
.Cells(cNapomena).Value = "bla1"
ElseIf .Cells(cVrijednost).Value Like "K-" Or .Cells(cVrijednost).Value Like "KZD-" Or .Cells(cVrijednost).Value Like "KMP-" Then
.Cells(cNapomena).Value = "bla2"
End If
End If
End If
End With
Next
Application.EnableEvents = True
End Sub