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