title: Prompt user to select a worksheet
body: <p>I have a Macro, that prompts a user to select an Excel file, like this:</p>
  
  <pre><code>Dim thisBook As Workbook, newBook As Workbook
  Dim fd As FileDialog
  Dim oFD As Variant
  Dim fileName As String
  
  Set fd = Application.FileDialog(msoFileDialogFilePicker)
  
  With fd
          .ButtonName = "Select"
          .AllowMultiSelect = False
          .Filters.Add "Excel Files", "*.xlsx; *.xls", 1
          .Title = "Choose the Report"
          .InitialView = msoFileDialogViewDetails
          .Show
          For Each oFD In .SelectedItems
              fileName = oFD
          Next oFD
          On Error GoTo 0
   End With
  
   If fd.SelectedItems.Count = 0 Then
  
       Exit Sub
  
   End If
  
   Set thisBook = ActiveWorkbook
   Set newBook = Workbooks.Open(fileName)
  </code></pre>
  
  <p>This works fine, what I want to do now, and what I failed to find in the internet is the following:</p>
  
  <p>I want to prompt the user to select a worksheet from the <code>newbook</code>, since the sheet name could not be the same in the future.</p>
  
  <p>I came up with this, but I am not very happy with it, since it is rather inconvenient, to let the user type the sheet name:</p>
  
  <pre><code>Function WorksheetExists(WSName As String) As Boolean
      On Error Resume Next
      WorksheetExists = Worksheets(WSName).Name = WSName
      On Error GoTo 0
  End Function
  
  Function q() As String
  Dim shname As String
  Do Until WorksheetExists(shname)
  shname = InputBox("Enter sheet name")
  If Not WorksheetExists(shname) Then MsgBox shname &amp; " doesn't exist!", vbExclamation
  Loop
  q = shname
  End Sub 
  </code></pre>
  
  <p>Is there a way, to maybe let the user select the sheet name, from all the sheet names? (I am not using an Userform, the Macro starts, if the user clicks a Button)</p>