Split Text on New Line using Excel & VBA [Macros]

Share

Facebook
Twitter
LinkedIn

Hafiz, One of our avid readers, writes in.

Dear chandoo,

all the time, I use to spend time exploring chandoo.org. it’s very helpful site. thanks for your day & night efforts.

here I have to face a problem with “Text to Column”. can you please spare some time & guide me.

The problem is when I convert data from text to column using dash “-“, conversion is easy. but when the gap provided in text is with “alt+enter”, i can’t convert the data.

Do you have some solution specifically using text to column.

Well, I tried to use text to columns feature (from Data ribbon) and it would not work.

Although you can use formulas to do the splitting, they might become tedious. So the next logical option is to use macros.

Excel Macros to Split Text on New Lines

So I wrote a simple macro, that would take the text in current cell, split it and place it in adjacent cells. Like this:
Split Text on New Line using VBA & Excel

Macro Code to split text on new line:

Here is the macro code to split text based on new lines.

Sub splitText()
'splits Text active cell using ALT+10 char as separator
Dim splitVals As Variant
Dim totalVals As Long

splitVals = Split(ActiveCell.Value, Chr(10))
totalVals = UBound(splitVals)
Range(Cells(ActiveCell.Row, ActiveCell.Column + 1), Cells(ActiveCell.Row, ActiveCell.Column + 1 + totalVals)).Value = splitVals

End Sub

How does this code work?

  1. First we take the activecell’s value and split it based on Chr(10) as delimiter. This is the code for new lines.
  2. Then, we assign this split values to the range of cells adjacent to active cell.
  3. Then, we go grab a cup of coffee and sing our favorite song. Because the work is done!

Download Example Workbook

Click here to download example workbook and play with this macro. Make sure to enable macros.

How do you split text?

I really like the built-in text import feature in Excel and use it often. I use it to clean data, remove unnecessary columns or split text. In cases like this, I resort to VBA to have good control over how I want to split.

What about you? How do you split text. What is your experience. Please share your ideas and tips using comments.

Learn more about Splitting Text

If you split often, you will find this tutorial useful.

More VBA & Excel Macro Examples

If you want to learn VBA, go thru these examples

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

13 Responses to “Data Validation using an Unsorted column with Duplicate Entries as a Source List”

  1. Vipul says:

    Pivot Table will involve manual intervention; hence I prefer to use the 'countif remove duplicate trick' along with 'text sorting formula trick; then using the offset with len to name the final range for validation.

  2. Rich says:

    if using the pivot table, set the sort to Ascending, so the list in the validation cell comes back alphabetically.

  3. Kieranz says:

    Hui: Brillant neat idea.
    Vipul: I am intrigued by what you are saying. Please is it possible to show us how it can be done, because as u said Hui's method requires user intervention.
    Thks to PHD and all
    K

  4. sam says:

    Table names dont work directly inside Data validation.
    You will have to define a name and point it to the table name and then use the name inside validation
    Eg MyClient : Refers to :=Table1[Client]
    And then in the list validation say = MyClient

  5. Vipul says:

    Kieranz,
    Pls download the sample here http://cid-e98339d969073094.skydrive.live.com/self.aspx/.Public/data-validation-unsorted-list-example.xls
    Off course there are many other ways of doing the same and integrating the formulae in multiple columns into one.

  6. Vipul says:

    Pls refer to column FGHI in that file. Cell G4 is where my validation is.

  7. Kieranz says:

    Vipul:
    Many thks, will study it latter.
    Rgds
    K

  8. [...] to chandoo for the idea of getting unique list using Pivot tables.  What we do is that create a pivot table [...]

  9. Playercharlie says:

    @Vipul:

    Thanks, that was awesome! 🙂

  10. Vipul says:

    @Playercharlie Happy to hear that 🙂

  11. Enrique says:

    Great contribution, Hui. Solved a problem of many years!

  12. FARIS says:

    Thanks to you, A LOT

  13. Mohamed says:

    Hi Hui,
    Greeting
    hope you are doing well.
    I'm interested to send you a private vba excel file which i need to show detail of pivot in new workbook instead of showing in same workbook as new sheet.

    Please contact me on muhammed.ye@gmail.com

    Best Regards

Leave a Reply