Multiple selection from a dropdown list into another variable

MrsFixIt

New Member
Joined
Apr 15, 2016
Messages
17
Office Version
  1. 365
  2. 2016
Platform
  1. Windows
Hi.
I have been trying to modify and insert this code into an existing macro code.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Oldvalue As String
Dim Newvalue As String

On Error GoTo Exitsub
If Target.Address = "$C$5" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
Target.Value = Oldvalue & ", " & Newvalue
End If
End If
End If
Application.EnableEvents = True
Exitsub:

My challenge. I need the function of multiple selections from a drop-down to load to a variable that will update to a data table.
I have tinkered with inserting it into my existing code, but it is not working.

Ex. sheet 1, cell c66 has the dropdown list, they need to choose 4-5 items from that dropdown list, the selected items will load to string named offices, then offices will transfer to a specific column worksheet 2
 

Some videos you may like

Excel Facts

Who is Mr Spreadsheet?
Author John Walkenbach was Mr Spreadsheet until his retirement in June 2019.

Zot

Well-known Member
Joined
Nov 26, 2020
Messages
1,045
Office Version
  1. 2016
Platform
  1. Windows
I found this code from another website on how to do multiple selection from dropdown list. Yes, you need to open dropdown and select and open again and select

VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Code by Sumit Bansal from [URL='https://trumpexcel.com']Online Excel Tips & Tutorials[/URL]
' To allow multiple selections in a Drop Down List in Excel (without repetition)
Dim Oldvalue As String
Dim Newvalue As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Target.Address = "$C$2" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
If InStr(1, Oldvalue, Newvalue) = 0 Then
Target.Value = Oldvalue & ", " & Newvalue
Else:
Target.Value = Oldvalue
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
 
Last edited by a moderator:
Solution

MrsFixIt

New Member
Joined
Apr 15, 2016
Messages
17
Office Version
  1. 365
  2. 2016
Platform
  1. Windows
This is neat. I like this for one of my 1st headaches
But I have a new one. Worksheet A has 8 list boxes with checkboxes.
After the selections, move to the data table in worksheet B.; when you return to worksheet A, items selected in the list box do not deselect.
And may the answer will work for both setups.
 

Watch MrExcel Video

Forum statistics

Threads
1,128,020
Messages
5,628,182
Members
416,299
Latest member
arunvistas

We've detected that you are using an adblocker.

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.
Go back
Top