You don't say what's actually happening when you run this code. When I put it
in a small test workbook I get an "object required" error on the
ListItems.AddItem = SourceWB.Worksheets(1).Range("b2:B50").Value
statement. This is because ListItems is not a control and therefore doesn't
have an AddItem method.
In your description, you have columns A, B and C, but you only ever use column
B.
I think you need to give us a more detailed explanation of what you are trying
to do.
I'm also not sure what you expect the Transpose function call to do when used
with VBA variables.