Without seeing the spreadsheet itself I can't be sure, but is this the old problem of trying to reference the object directly instead of making a copy of the object?

For instance in most computer languages if you say:

// Create first object
Object myFirstObject;
// (... populate the object with data ...)

// Create the second object
Object mySecondObject;
// Copy data from the first object to the second object so I get a starting point for my data
mySecondObject = myFirstObject;
// (... modify the data in the second object...)

You might think that you've just made a copy of the first object, and expect to access them separately, so that you can modify the data in them independently.

But that's not what you've done. What you just did was just assigned the first object's *pointer* to the second object, so, now *both* objects are pointing to the actual data set from the first object. They're now just two different names for the same thing, and you've completely lost the pointer to the original second object.

Not sure how it's handled in VBA, but it's possible that a simple "=" sign isn't good enough in the case where you're trying to make a copy. There might be a shortcut to accomplish what you need, or, you might have to instantiate each object separately and write a routine to copy the data from each one over.

This is just a guess, maybe it's something totally unrelated. I'd have to look at your code to know exactly. I've done some quite advanced programming in VBA for Word, but I've never tried to copy a list box like that.

Is it as simple as:

Dim lstbox As MSForms.ListBox
Set lstbox.Items() = Sheets("UserInput").LiftListBox.Items()

or something like that?
_________________________
Tony Fabris