Your macro tweaked (see comments in it too):
Public Sub UpdateCompMatrix()
Dim SOPtest As Workbook
Dim SOP_kompetence_matrix As Worksheet
Dim LastRowID As Long
Dim LastColumnSOP As Long
Dim c As Long
Dim r As Long
Set SOPtest = ThisWorkbook
Set SOP_kompetence_matrix = SOPtest.Sheets("SOP_kompetence_matrix") 'ActiveSheet
LastRowID = SOP_kompetence_matrix.Cells(Rows.Count, "A").End(xlUp).Row
LastColumnSOP = SOP_kompetence_matrix.Cells(2, Columns.Count).End(xlToLeft).Column
With SOP_kompetence_matrix
''Either this:
Set rw = .Range("A3:A" & LastRowID).Find(TextBox2.Text, LookIn:=xlFormulas, lookat:=xlWhole, searchformat:=False)
If Not rw Is Nothing Then
Set colm = .Range("B2").Resize(, LastColumnSOP - 1).Find(TextBox1.Text, LookIn:=xlFormulas, lookat:=xlWhole, searchformat:=False)
If Not colm Is Nothing Then
Intersect(rw.EntireRow, colm.EntireColumn).Value = "X"
Else
MsgBox "SOP not found"
End If
Else
MsgBox "ID not found"
End If
''or this:
' For c = 2 To LastColumnSOP
' If .Cells(2, c).Value = TextBox1.Text Then
' For r = 3 To LastRowID
' If .Cells(r, 1).Value = TextBox2.Text Then
' .Cells(r, c).Value = "X"
' Exit For
' End If
' Next r
' Exit For
' End If
' Next c
End With
End Sub
Copy the whole code across, there are changes that you won't spot easily.