Public selectedRange As Range
Sub ShowSelectedAddress()
If selectedRange Is Nothing Then
MsgBox "nothing selected"
Else
MsgBox selectedRange.Address & " has been accumulated."
End If
Set selectedRange = Nothing:Rem reset selectedRange
End Sub
Sub showUF()
UserForm1.Show
End Sub
In the sheet's code module
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If selectedRange Is Nothing Then
Set selectedRange = Target
Else
Set selectedRange = Application.Intersect(UsedRange, Application.Union(selectedRange, Target))
End If
End Sub
and in the userform's module
Code:
Private Sub UserForm_Initialize()
Dim oneCell As Range
If Not selectedRange Is Nothing Then
Me.Caption = selectedRange.Cells.Count
For Each oneCell In selectedRange
ListBox1.AddItem CStr(oneCell)
Next oneCell
End If
End Sub
The basic change I'm suggesting is to combine the Selections into a Range object, not a collection of strings.
We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel
Which adblocker are you using?
Disable AdBlock
Follow these easy steps to disable AdBlock
1)Click on the icon in the browser’s toolbar. 2)Click on the icon in the browser’s toolbar. 2)Click on the "Pause on this site" option.
Go back
Disable AdBlock Plus
Follow these easy steps to disable AdBlock Plus
1)Click on the icon in the browser’s toolbar. 2)Click on the toggle to disable it for "mrexcel.com".
Go back
Disable uBlock Origin
Follow these easy steps to disable uBlock Origin
1)Click on the icon in the browser’s toolbar. 2)Click on the "Power" button. 3)Click on the "Refresh" button.
Go back
Disable uBlock
Follow these easy steps to disable uBlock
1)Click on the icon in the browser’s toolbar. 2)Click on the "Power" button. 3)Click on the "Refresh" button.