title: Let the user click on the cells as their input for an Excel InputBox using VBA
body: <p>I have an InputBox that stores user input into a variable. The input the user is inputting is a cell number. </p>
  
  <p>For example, the input box pops up and asks the user, "Where would you like to start?" The user would then type in A4, or whichever cell they would want to start.</p>
  
  <p>My question is, is there a way to allow the user to physically click on cell A4 instead of typing it in? </p>
  
  <p>Thanks in advance for any help</p>
  
  <p><strong>Update:</strong> So, basically we have long lists of transposed data that span horizontally. We want those lists to stacked on top of each other horizontally, which is what this code is supposed to do.</p>
  
  <p>Everything worked fine before, but the user would to have to manually type in the cell number into the InputBox. The input box asks the user where they want to start cutting and the second box asks the user where they want to start pasting. I would store those input values into string variables and everything worked like a charm.</p>
  
  <p>Since then, I wanted the user to be able to physically click on the cell since it can be difficult to look at which row number it actually is. The code below is updated to reflect the changes trying to be used to allow the user to click on the cell. I added the <strong>Application.InputBox</strong> method and changed my declarations of the variables to Range.</p>
  
  <p>I stepped into the program one at a time to see what was going on and this is what I found. Before, if the User wanted to start at B4 and paste to A16, it would select the data range for B(B4:B15), cut it, and paste it to A16. Then, the way I had the code, it would go back to the B4 user input spot and using a for loop to increment my x variable, it would offset to the next column over to the right. So, it would then repeat the process of cutting column C(C4:C15) and paste it this time to A28(using xldown), and so on for proceeding columns.</p>
  
  <p>What is happening now when I stepped into this current code is that I don't see any recorded values into my Range variables. It does the first step of cutting B4:B15 and pasting it to A16, but when it goes to run the next loop, instead of starting back at B4 and offsetting, it starts off on A16 and then offsets. It should be going back to B4, which the user selected as the starting spot, and then offsetting.</p>
  
  <p>Sorry, for the long explanations, but I hope this helped to clear the situation up.</p>
  
  <p><strong>Current code using Application.InputBox</strong></p>
  
  <pre><code> Dim x As Integer
   Dim strColumnStart As Range
   Dim strColumnEnd As Range
  
   On Error Resume Next
  
   Application.DisplayAlerts = False
  
   Set strColumnStart = Application.InputBox("What cell would you like to start at?", "Starting position","Please include column letter and  cell number", Type:=8)
  
   On Error GoTo 0
  
   Set strColumnEnd = Application.InputBox("Where would you like to paste the cells to?", "Pasting position", "Please include column letter and cell number", Type:=8)
  
   On Error GoTo 0
  
   Application.DisplayAlerts = True
  
   If strColumnStart = "What cell would you like to start at?" Or _
   strColumnEnd = "Please include column letter and cell number" Then
  
      Exit Sub
  
   Else
  
   For x = 0 To strColumnStart.CurrentRegion.Columns.Count 
     strColumnStart.Select 
     ActiveCell.Offset(0, x).Select 
  
     If ActiveCell.Value = Empty Then 
        GoTo Message 
     Else 
        Range(Selection, Selection.End(xlDown)).Select 
        Selection.Cut strColumnEnd.Select 
        ActiveCell.Offset(-2, 0).Select 
        ActiveCell.End(xlDown).Select 
        ActiveCell.Offset(1, 0).Select 
        ActiveSheet.Paste 
        strColumnStart.Select 
     End If 
     Next x
  
     End If
  
   Message:
   MsgBox ("Finished")
   strColumnEnd.Select
   ActiveSheet.Columns(ActiveCell.Column).EntireColumn.AutoFit
   Application.CutCopyMode = False
  End Sub
  </code></pre>