LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #7   Report Post  
Posted to microsoft.public.excel.misc
Dave Peterson
 
Posts: n/a
Default Use dd menu choice to filter input for next ddm, etc.

I built a userform with 3 comboboxes and 2 command buttons on it.

This is the code behind the userform:

Option Explicit
Private Sub ComboBox1_Change()

Dim iRow As Long
Dim NoDupes As Collection
Dim iCtr As Long

Set NoDupes = New Collection

With Me.ComboBox2
.Clear
.Enabled = False
End With

With Me.ComboBox3
.Clear
.Enabled = False
End With

If Me.ComboBox1.ListIndex < -1 Then
With Worksheets("Sheet1")
On Error Resume Next
For iRow = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
If LCase(.Cells(iRow, "A").Value) _
= LCase(Me.ComboBox1.Value) Then
NoDupes.Add .Cells(iRow, "b").Value, _
CStr(.Cells(iRow, "b").Value)
End If
Next iRow
On Error GoTo 0

If NoDupes.Count 0 Then
For iCtr = 1 To NoDupes.Count
Me.ComboBox2.AddItem NoDupes(iCtr)
Next iCtr
Me.ComboBox2.Enabled = True
Else
MsgBox "No choices for combobox2"
End If
End With
End If

End Sub

Private Sub ComboBox2_Change()

Dim iRow As Long
Dim NoDupes As Collection
Dim iCtr As Long

Set NoDupes = New Collection

With Me.ComboBox3
.Clear
.Enabled = False
End With

If Me.ComboBox2.ListIndex < -1 _
And Me.ComboBox1.ListIndex < -1 Then
With Worksheets("Sheet1")
On Error Resume Next
For iRow = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
If LCase(.Cells(iRow, "A").Value) _
= LCase(Me.ComboBox1.Value) Then
If LCase(.Cells(iRow, "B").Value) _
= LCase(Me.ComboBox2.Value) Then
NoDupes.Add .Cells(iRow, "c").Value, _
CStr(.Cells(iRow, "c").Value)
End If
End If
Next iRow
On Error GoTo 0

If NoDupes.Count 0 Then
For iCtr = 1 To NoDupes.Count
Me.ComboBox3.AddItem NoDupes(iCtr)
Next iCtr
Me.ComboBox3.Enabled = True
Else
MsgBox "No choices for combobox3"
End If
End With
End If

End Sub
Private Sub ComboBox3_Change()

If Me.ComboBox3.ListIndex < -1 _
And Me.ComboBox2.ListIndex < -1 _
And Me.ComboBox1.ListIndex < -1 Then
Me.CommandButton2.Enabled = True
Else
Me.CommandButton2.Enabled = False
End If

End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub CommandButton2_Click()

Dim iRow As Long
Dim DestCell As Range

With Worksheets("sheet2")
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With

If Me.ComboBox3.ListIndex < -1 _
And Me.ComboBox2.ListIndex < -1 _
And Me.ComboBox1.ListIndex < -1 Then
With Worksheets("Sheet1")
For iRow = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
If LCase(.Cells(iRow, "A").Value) _
= LCase(Me.ComboBox1.Value) Then
If LCase(.Cells(iRow, "B").Value) _
= LCase(Me.ComboBox2.Value) Then
If LCase(.Cells(iRow, "C").Value) _
= LCase(Me.ComboBox3.Value) Then
'do the copy
.Rows(iRow).Copy _
Destination:=DestCell
Set DestCell = DestCell.Offset(1, 0)
End If
End If
End If
Next iRow
End With
End If

Call UserForm_Initialize

End Sub

Private Sub UserForm_Initialize()

Dim iRow As Long
Dim NoDupes As Collection
Dim iCtr As Long

With Me.ComboBox1
.Enabled = True
.Clear
.Style = fmStyleDropDownList
End With

With Me.ComboBox2
.Enabled = False
.Clear
.Style = fmStyleDropDownList
End With

With Me.ComboBox3
.Enabled = False
.Style = fmStyleDropDownList
End With


Set NoDupes = New Collection

With Worksheets("Sheet1")
On Error Resume Next
For iRow = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
NoDupes.Add .Cells(iRow, "A").Value, CStr(.Cells(iRow, "A").Value)
Next iRow
On Error GoTo 0

If NoDupes.Count 0 Then
For iCtr = 1 To NoDupes.Count
Me.ComboBox1.AddItem NoDupes(iCtr)
Next iCtr
End If
End With

With Me.CommandButton1
.Enabled = True
.Caption = "Cancel"
End With

With Me.CommandButton2
.Enabled = False
.Caption = "Ok"
End With

End Sub

I _think_ it does what you want.

And to show the userform you can put this in a general module:

Option Explicit
sub ShowMyForm()
userform1.show
end sub

You can plop a button from the Forms toolbar onto the worksheet and assign that
macro to the button or you can incorporate it into your code someother way.

You may want to review these two pages from Debra Dalgleish's site:
http://www.contextures.com/xlUserForm01.html
and
http://www.contextures.com/xlUserForm02.html

Debra Dalgleish has a list of books at her site:
http://www.contextures.com/xlbooks.html

John Walkenbach's is a nice one to start with.

Depending on how advanced you are...

Professional Excel Development
By Stephen Bullen, Rob Bovey, John Green

See if you can find them in your local bookstore/internet site and you can
choose what one you like best.




William DeLeo wrote:

But, can I use autofilter without allowing the user to be inside the
particular sheet that holds the data? My client doesn't want the user
to have such access (only one record accessed at a time for data input
corrections). I just need to allow the user to identify one record and
then pull that info to another part of my workbook. But the user needs
three menu choices to adequately narrow down the list.

Regarding code ... I'm happy to go that route ... any suggestions for
functions that I could start with?

Thanks and sorry to drag this out ... I'll stop asking questions now
and taking advantage of your hospitality. Your help is greatly
appreciated.

WD

--
William DeLeo
------------------------------------------------------------------------
William DeLeo's Profile: http://www.excelforum.com/member.php...fo&userid=1256
View this thread: http://www.excelforum.com/showthread...hreadid=550457


--

Dave Peterson
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Edit Menu will not automatically drop down anymore Irene Pai Excel Discussion (Misc queries) 5 May 12th 11 07:43 AM
Auto Filter - Protected sheet/workbook ronwill Excel Discussion (Misc queries) 3 January 10th 06 03:28 PM
Delete rows based on multiple criterias Benson Excel Discussion (Misc queries) 8 November 2nd 05 03:11 PM
Menu items added with menu item editor in older versions Michael Hoffmann Excel Discussion (Misc queries) 2 January 7th 05 01:40 PM
Applying a formula to a drop menu choice Andrew Hill Excel Discussion (Misc queries) 1 January 4th 05 11:05 AM


All times are GMT +1. The time now is 12:23 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"