![]() |
User Form: Combo Box - filter out repeats.
Hi,
My code thus far is:- Option Explicit Private Const Sourcename As String = "SubsTargets" Private Source As Range Private Sub cmdClose_Click() Unload Me End Sub Private Sub Label2_Click() End Sub Private Sub Titles_Click() End Sub Private Sub UserForm_Click() End Sub Private Sub UserForm_Initialize() Set Source = Range(Sourcename) LoadEditors LoadTitles End Sub Private Sub LoadEditors() Dim markets As New Scripting.Dictionary Dim index As Long Dim market As String For index = 2 To Source.Rows.Count market = Source.Cells(index, 1) If Not markets.Exists(market) Then markets.Add market, market Editors.AddItem market End If Next End Sub Private Sub LoadTitles() Dim markets As New Scripting.Dictionary Dim index As Long Dim market As String For index = 2 To Source.Rows.Count market = Source.Cells(index, 3) If Not markets.Exists(market) Then markets.Add market, market TitleSelect.AddItem market End If Next End Sub Private Sub Editors_Change() LoadTitlesData End Sub Private Sub LoadTitlesData() Dim markets As New Scripting.Dictionary Dim market As String Dim index As Long market = Editors.Value With TitleSelect .Clear For index = 2 To Source.Rows.Count If Source.Cells(index, 1).Value = market Then .AddItem Source.Cells(index, 3) End If Next End With End Sub Private Sub TitleSelect_Change() LoadMarketData End Sub Private Sub LoadMarketData() Dim index As Long Dim titleselection As String titleselection = TitleSelect.Value With Titles .Clear For index = 2 To Source.Rows.Count If Source.Cells(index, 3).Value = titleselection Then .AddItem Source.Cells(index, 4) .List(.ListCount - 1, 1) = Source.Cells(index, 5) .List(.ListCount - 1, 2) = Source.Cells(index, 6) .List(.ListCount - 1, 3) = Source.Cells(index, 7) .List(.ListCount - 1, 4) = Source.Cells(index, 8) .List(.ListCount - 1, 5) = Source.Cells(index, 10) .List(.ListCount - 1, 6) = Source.Cells(index, 11) .List(.ListCount - 1, 7) = Source.Cells(index, 12) .List(.ListCount - 1, 8) = Source.Cells(index, 13) End If Next End With End Sub What I would like in the LoadTitlesData Sub something that clears and repeated / duplicate title names. As the LoadTitles Sub works? Could someone help me please? TIA Matthew |
User Form: Combo Box - filter out repeats.
Hi Matthew,
It is difficult to determine exactly what you are trying to do. Some suggestions... Put your question at the top. (a lot of people who could answer your question are not going to scroll thru all of the code to find what your problem is) Explain the results you are getting. Explain the results you actually want. Following is some "air" code that might be close to what you want... Private Sub LoadTitlesData() Dim dicMarkets As Scripting.Dictionary Dim Market As String Dim lngIndex As Long Market = Editors.Value '??? ' Set Source = ??? Set dicMarkets = New Scripting.Dictionary For lngIndex = 2 To Source.Rows.Count If dicMarkets.Exists(CStr(Source.Cells(lngIndex, 3).Value)) Then 'it's a duplicate so do something Else dicMarkets.Add CStr(Source.Cells(lngIndex, 3)), vbNullString End If Next Set dicMarkets = Nothing End Sub '------------- More... Index is a word that has a defined meaning in Excel. You could cause confusion by using it as a variable. Also, Chip Pearson has some comments on the use of the "New" word... "Don't Use The New Keyword In A Dim Statement" at... http://www.cpearson.com/excel/variables.htm Regards, Jim Cone San Francisco, USA http://www.realezsites.com/bus/primitivesoftware "Matthew Balch" wrote in message Hi, My code thus far is:- Option Explicit Private Const Sourcename As String = "SubsTargets" Private Source As Range Private Sub cmdClose_Click() Unload Me End Sub Private Sub Label2_Click() End Sub Private Sub Titles_Click() End Sub Private Sub UserForm_Click() End Sub Private Sub UserForm_Initialize() Set Source = Range(Sourcename) LoadEditors LoadTitles End Sub Private Sub LoadEditors() Dim markets As New Scripting.Dictionary Dim index As Long Dim market As String For index = 2 To Source.Rows.Count market = Source.Cells(index, 1) If Not markets.Exists(market) Then markets.Add market, market Editors.AddItem market End If Next End Sub Private Sub LoadTitles() Dim markets As New Scripting.Dictionary Dim index As Long Dim market As String For index = 2 To Source.Rows.Count market = Source.Cells(index, 3) If Not markets.Exists(market) Then markets.Add market, market TitleSelect.AddItem market End If Next End Sub Private Sub Editors_Change() LoadTitlesData End Sub Private Sub LoadTitlesData() Dim markets As New Scripting.Dictionary Dim market As String Dim index As Long market = Editors.Value With TitleSelect .Clear For index = 2 To Source.Rows.Count If Source.Cells(index, 1).Value = market Then .AddItem Source.Cells(index, 3) End If Next End With End Sub Private Sub TitleSelect_Change() LoadMarketData End Sub Private Sub LoadMarketData() Dim index As Long Dim titleselection As String titleselection = TitleSelect.Value With Titles .Clear For index = 2 To Source.Rows.Count If Source.Cells(index, 3).Value = titleselection Then .AddItem Source.Cells(index, 4) .List(.ListCount - 1, 1) = Source.Cells(index, 5) .List(.ListCount - 1, 2) = Source.Cells(index, 6) .List(.ListCount - 1, 3) = Source.Cells(index, 7) .List(.ListCount - 1, 4) = Source.Cells(index, 8) .List(.ListCount - 1, 5) = Source.Cells(index, 10) .List(.ListCount - 1, 6) = Source.Cells(index, 11) .List(.ListCount - 1, 7) = Source.Cells(index, 12) .List(.ListCount - 1, 8) = Source.Cells(index, 13) End If Next End With End Sub What I would like in the LoadTitlesData Sub something that clears and repeated / duplicate title names. As the LoadTitles Sub works? Could someone help me please? TIA Matthew |
All times are GMT +1. The time now is 12:14 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com