Good Morning Everyone.

A while back I created a spreadsheet based on two sheets. The first contained all the data in a series of columns laid out in a particular order, the second was a copy and past sheet of the data in sheet one, but with the columns in a different order.

This was because the data from the first sheet needed to be uploaded to an external program, but the columns needed to be in a different order to how we stored them in our spreadsheet. (Its a parts list and we have to have it laid out like we do.)

Now, this was fine because all the data was in one sheet, so the copy and past macro was fairly simple.

Range("G5:G40000").Select
    Selection.Copy
    Sheets("Portal Upload").Select
    Range("B7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Master").Select
    ActiveWindow.ScrollColumn = 15
    ActiveWindow.ScrollColumn = 14
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 8
    Range("H5:H40000").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Portal Upload").Select
    Range("C7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Master").Select
    MsgBox "The data has been successfully copied."
Above is a sample section of the macro I recorded for this Portal upload to happen.

Now, I have been asked by the higher ups to create another spreadsheet, a similar parts list, but these will now all be spread out across multiple sheets, not just the singular Master sheet as in the code above.

So basically I will have quite a few sheets that will need a macro to copy and past the columns in to the same format on a final sheet to upload to our portal. Instead of having hundreds of macros for each individual sheet, I was wondering if it was possible to have a userform load up, display the different sheet names in a drop down, and then that would determine which sheet was copied from, or if there was another way of doing it entirely?

Any help is appreciated as I am at a dead end.

Regards,

JP