See if this works for you.
VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Patch As String, Filefound As Boolean, Strfile As String, Imgfile As String
If Not Intersect(Target, Range("a2")) Is Nothing Then
Patch = ThisWorkbook.Path
Filefound = False
Strfile = Dir(Patch & "\" & Range("B2").Value & ".*")
Do While Len(Strfile) > 0
If Len(Strfile) <> 0 Then
Filefound = True
Imgfile = Strfile
Exit Do
Else
End If
Loop
If Filefound = True Then
ActiveSheet.Pictures.Insert(Patch & "\" & Imgfile).Select
Else
MsgBox ("File not found")
End If
End If
End Sub
I could also see in your code you placed the extension twice with a bracket in the middle. That may have been causing some issues.
("(*.gif; *.jpg; *.bmp; *.tif; *.jpeg; *.png
), *.gif; *.jpg; *.bmp; *.tif; *.jpeg; *.png"))