Hi all, I found the following at http://http://www.erlandsendata.no/e...tboxfillunique
Fill a ListBox with unique values from a worksheet
The example macros below shows how you can fill a ListBox-control (and a ComboBox-control) in a UserForm with the unique values from worksheet range. Copy the code to the UserForm code module.
Private Sub UserForm_Initialize()
Dim MyUniqueList As Variant, i As Long
With Me.ListBox1
.Clear ' clear the listbox content
MyUniqueList = UniqueItemList(Range("A4:A100"), True)
For i = 1 To UBound(MyUniqueList)
.AddItem MyUniqueList(i)
Next i
.ListIndex = 0 ' select the first item
End With
End Sub
Private Function UniqueItemList(InputRange As Range, _
HorizontalList As Boolean) As Variant
Dim cl As Range, cUnique As New Collection, i As Long, uList() As Variant
Application.Volatile
On Error Resume Next
For Each cl In InputRange
If cl.Formula <> "" Then
cUnique.Add cl.Value, CStr(cl.Value)
End If
Next cl
UniqueItemList = ""
If cUnique.Count > 0 Then
ReDim uList(1 To cUnique.Count)
For i = 1 To cUnique.Count
uList(i) = cUnique(i)
Next i
UniqueItemList = uList
If Not HorizontalList Then
UniqueItemList = _
Application.WorksheetFunction.Transpose(UniqueItemList)
End If
End If
On Error GoTo 0
End Function
I was hoping that I could incorporate this into my userform using refedit,
I'm put together this:
Private Sub CommandButton2_Click()
Dim path As String
Dim Rng As Range
Dim addr As Range
Dim Raddress As Range, strAddress As String
Dim MyUniqueList As Variant, i As Long
Dim stPath As String
stPath = "L:\Elec Dept Projects\RELEASED FOR CONSTRUCTION\" & Sheets("BOM").Range("C6").Value & " " & Sheets("BOM").Range("C7").Value & " " & "-" & " " & Sheets("BOM").Range("C8").Value & "\"
If Sheets("BOM").Range("C18") <> " " And Sheets("BOM").Range("C8") <> " " Then
path = Sheets("BOM").Range("C18").Value & "\" & Sheets("BOM").Range("C6").Value & "_BOM_Revised.htm"
Else
path = stPath & Sheets("BOM").Range("C6").Value & "_BOM_Revised.htm"
End If
With Me.UserForm1.RefEdit1.Text
.Clear
MyUniqueList = UniqueItemList(Range("C17:C17"), True)
.AddItem MyUniqueList(MyUniqueList)
.ListIndex = 0 ' select the first item
End With
Set Raddress = MyUniqueList
.....end of code of interest.
Using it with the Function Code, I'm get the same result. Bascially back to square 1.
... I wouldn't think it should be so difficult getting the the cell value place into a userform box by selecting a cell manually or with code.
Again any input is greatly appreciated.
BDB
Bookmarks