Create a range from data captured and store in variable to be referred to without push the data into cells


Board Regular
May 24, 2016
Hi Everyone,

I have data that is captured (by input from the user) like given below - the data in quotes is the data captured. I am labeling them here for easy reference.

Data 1 captured in Cell A1- Size 1|Size 2|Size 3
Data 2 captured in Cell B1- AItem 1|AItem 2|AItem 3|AItem 4|AItem 5
Data 3 captured in Cell C1- BItem 1|BItem 2|BItem 3
Data 4 captured in Cell D1- CItem 1|CItem 2|CItem 3|CItem 4

The data is captured in exactly the same format as given above - using the vertical bar as separator and no spaces before or after the separator.

Once this data is captured the user will be shown a Userform with "Data 1" as column headers and "Data 1" or "Data 2" or "Data 3" (depending on the column that is active) as the row headers and with corresponding blank TextBoxes where the user needs to fill in the respective prices - am attaching a screenshot of the Userform that the user will see.
Once the user fills out the prices the data from the UserForm then needs to be Captured in the Corresponding row in Column E in exactly the below-given format
(have used "*" as a filler character for "prices" as I did not want it to be confused with the Size number.

"Item 1=Size 1-*,Size 2-*,Size 3-*+Item 2=Size 1-*,Size 2-*,Size 3-*+Item 3=Size 1-*,Size 2-*,Size 3-*+Item 4=Size 1-*,Size 2-*,Size 3-*+Item 5=Size 1-*,Size 2-*,Size 3-*"

Currently, I am using "texttocolumns", "transpose" and copy and paste to get this done in VBA.
The blanked out data in the attached image (i.e the "Sizes" horizontally and "Items" vertically are right now being sourced from cells out of the user's sight, from Column BC where they have been pushed to after the "texttocolumns" and "transpose" functions.

Is there a more efficient way to do this?


  • Userform Image.JPG
    Userform Image.JPG
    29.5 KB · Views: 4

Some videos you may like

Excel Facts

Workdays for a market open Mon, Wed, Friday?
Yes! Use "0101011" for the weekend argument in NETWORKDAYS.INTL or WORKDAY.INTL. The 7 digits start on Monday. 1 means it is a weekend.


Board Regular
May 24, 2016
Sorry missed out on adding the quotes.

Data 1 captured in Cell A1- "Size 1|Size 2|Size 3"
Data 2 captured in Cell B1- "AItem 1|AItem 2|AItem 3|AItem 4|AItem 5"
Data 3 captured in Cell C1- "BItem 1|BItem 2|BItem 3"
Data 4 captured in Cell D1- "CItem 1|CItem 2|CItem 3|CItem 4"

Watch MrExcel Video

Forum statistics

Latest member