Hi Scott,
Very nice Spreadsheet design and ditto for the UserForm Design.
I think your problems can be solved as follows:
a. Add a helper row (that can be hidden) above row 2 in your table. In each cell above a category to be excluded you would put an 'X' or some other character or group of characters to indicate that that category would not be included in the UserForm. Any category with an 'X' above it would not be included in the ComboBox List.
b. To remove items from the list, is doable, but a little more complicated, because when you change categories in a ComboBox, the old value must be recycled into the list. One way to solve this problem is to:
(1) initially put all the valid categories in a two dimensional array before populating the ComboBoxes. The first index would contain the category names. The second index would indicate whether the category is currently in use by a ComboBox.
(2) When a ComboBox selection is made use the .Tag property of the ComboBox to store the current ComboBox Value. The previous .Tag value (if not blank) would be the category to be recycled.
(3) In the two dimensional array mark the recycled value as available.
(4) Clear all ComboBox Lists.
(5) Create a new list for all ComboBoxes.
----------------------
The .Tag property is a little known item available in UserForm Controls. It is an item that the programmer can use to store anything. It is quite useful in situations like yours. There is very little documentation about the property.
I am very busy the next few days. If I don't see a response that you like, I will try to post possible updates to your file on Friday or Saturday (US Eastern time).
Lewis
Bookmarks