This should be close ...
The code needs to be pasted in to the code module for the Sheet (e.g. Sheet1, Sheet2 etc)Code:Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim strFileSelected As String If Target.Count = 1 And Target.Column = 3 Then With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False .Filters.Clear .Filters.Add "JPEG File", "*.jpg" .Filters.Add "PNG File", "*.png" .Title = "Select Image" .Show If .SelectedItems.Count Then strFileSelected = .SelectedItems(1) Else MsgBox "Cancelled by user!" Exit Sub End If End With With Me.Pictures.Insert(strFileSelected) .Top = Target.Top .Left = Target.Left .Width = Target.Width .Height = Target.Height End With End If End Sub
Then, when a new cell is selected, the macro checks to see which column has been selected and also how many cells were selected.
If one cell was selected in Column 3 then a FileDialog will appear asking the user to select a picture.
The selected picture will be placed in the selected cell.
If you need it to work in a different column then change the number in red above.
The above settings can be used to select either .jpg files or .png files. Other options are possible.