A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data.
Hi Firbaus,
replace (2 lines)
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=Join(v, ",")
with (one line)
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(v, ",")
all vba
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'' ### 14 Jan. 2019 oAnast ###
Dim ws As Worksheet
Set ws = ActiveSheet
Dim rCel As Range
Set rCel = ws.Range("G2") '<< create drop down list in cell G2
Dim c As New Collection, cItem
Dim L As Long, i As Long
Dim v As Variant
L = ws.Cells(Rows.Count, "B").End(xlUp).Row
On Error Resume Next
For Each cItem In ws.Range("B3:B" & L) 'id numbers in col B from row 3
c.Add cItem, cItem
Next
ReDim v(1 To c.Count + 1)
For i = 1 To c.Count
v(i) = c(i)
Next
v(c.Count + 1) = "ALL"
If Not Intersect(Target, rCel) Is Nothing Then
rCel.Interior.Color = vbYellow
With rCel.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(v, ",")
End With
rCel.Offset(, 1).Select
End If
End Sub