Using VBA to prompt user to select cells (possibly on different sheet)

Jonny picture Jonny · Apr 2, 2014 · Viewed 79.9k times · Source

I'm working in Excel on a VBA project, and want part of my macro to prompt the user to select a range of cells*, which the macro can later do stuff with.

*The type of prompt you get when creating a chart, or using a GUI to insert a function

e.g. here: Screengrab showing required functionality - the Excel 'Sum' Function Arguments pop-up

and here: Screengrab showing required functionality - the Excel Function Arguments pop-up

I'm therefor looking for something along the lines of

Sub MyMacro()
    MsgBox "Please select data range"

    ' allow user to select range (as images above)
    CreateFunctionArgumentsPrompt()    

    'do stuff with user selected range of cells
    ...
End Sub

Is it possible to access built-in Excel functionality to perform what I refer to as: CreateFunctionArgumentsPrompt()

Note: this is similar to SO question excel vba get range of user selected range by mouse but differs in that

  1. I want to use the built in GUI functionality of Excel as displayed above
  2. I need to be able to select and refer to a range on a sheet other than the active worksheet

Answer

ChrisProsser picture ChrisProsser · Apr 2, 2014

This isn't using the built in that you showed above, but does allow you to select a range of cells following an income prompt:

Sub RangeSelectionPrompt()
    Dim rng As Range
    Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)

    MsgBox "The cells selected were " & rng.Address
End Sub

This is based on the answer given in this MrExcel answer.

Here is how it looks in use:

enter image description here