Try something like this:
Const FileTypes As String = "Picture files (*.bmp; *.gif; *.tif; " & _
"*.jpg; *.jpeg), *.bmp; *.gif; *.tif; *.jpg; *.jpeg"
Sub InsertPict()
Dim ws As Worksheet
Dim P As Picture
Dim c As Range
Dim h As Single, r As Single
Dim PNm As Variant
Set ws = ActiveSheet 'Sheets("Pictures")
ws.Unprotect
Set c = ws.Range("B2")
With Application
PNm = .GetOpenFilename(FileTypes, Title:="Select Photo")
If VarType(PNm) = vbBoolean Then Exit Sub
.ScreenUpdating = False
Set P = ws.Pictures.Insert(PNm)
r = P.Height / P.Width 'Get proportionality ratio
P.Width = c.Width
P.Height = r * P.Width
P.Left = c.Left
P.Top = c.Top
c.RowHeight = P.Height
.ScreenUpdating = True
End With
ws.Protect
Set ws = Nothing
Set P = Nothing
Set c = Nothing
End Sub
Regards,
Greg