Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1503
  • Last Modified:

Concatenate until blank cell

Hi,

I have the following information on an excel sheet and i want a macro to concatenate the data untill the blank cell is found i have tried to explain it below

Data

A      B      C      D      D
Folder 1      Folder 2      Folder 3      Folder 4      
Folder 3      Folder 4      Folder 5      Folder 6      Folder 7
Folder 1      Folder 2      Folder 3      Folder 4      
Folder 3      Folder 4      Folder 5            

Output required

I used Concatanate(CellA&"\"& Cell B&...etc)

Folder 1\Folder 2\Folder 3\Folder 4\
Folder 3\Folder 4\Folder 5\Folder 6\Folder 7
Folder 1\Folder 2\Folder 3\Folder 4\
Folder 3\Folder 4\Folder 5\\

I do not want the extra "\" in my output

Please can someone help me with a macro to generate the output without the extra "\"

Thanks
Ram
0
ramkumar8516
Asked:
ramkumar8516
  • 2
1 Solution
 
Patrick MatthewsCommented:
Hi Ram,

Add this new function to your workbook's VBProject, in a regular module:





Option Explicit

Function ConcRange(Substrings As Range, Optional Delim As String = "", _
    Optional AsDisplayed As Boolean = False, Optional SkipBlanks As Boolean = False)
   
    ' Function by Patrick Matthews, Matt Vidas, and rberke

    ' Concatenates a range of cells, using an optional delimiter.  The concatenated
    ' strings may be either actual values (AsDisplayed=False) or displayed values.
    ' If NoBlanks=True, blanks cells or cells that evaluate to a zero-length string
    ' are skipped in the concatenation
   
    ' Substrings: the range of cells whose values/text you want to concatenate.  May be
    ' from a row, a column, or a "rectangular" range (1+ rows, 1+ columns)
   
    ' Delimiter: the optional separator you want inserted between each item to be
    ' concatenated.  By default, the function will use a zero-length string as the
    ' delimiter (which is what Excel's CONCATENATE function does), but you can specify
    ' your own character(s).  (The Delimiter can be more than one character)
   
    ' AsDisplayed: for numeric values (includes currency but not dates), this controls
    ' whether the real value of the cell is used for concatenation, or the formatted
    ' displayed value.  Note for how dates are handled: if AsDisplayed is FALSE or omitted,
    ' dates will show up using whatever format you have selected in your regional settings
    ' for displaying dates.  If AsDisplayed=TRUE, dates will use the formatted displayed
    ' value

    ' SkipBlanks: Indicates whether the function should ignore blank cells (or cells with
    ' nothing but spaces) in the Substrings range when it performs the concatenation.
    ' If NoBlanks=FALSE or is omitted, the function includes blank cells in the
    ' concatenation.  In the examples above, where NoBlanks=False, you will see "extra"
    ' delimiters in cases where the Substrings range has blank cells (or cells with only
    ' spaces)
   
    Dim CLL As Range
   
    For Each CLL In Substrings.Cells
        If Not (NoBlanks And Trim(CLL) = "") Then
            ConcRange = ConcRange & Delim & IIf(AsDisplayed, Trim(CLL.Text), Trim(CLL.Value))
        End If
    Next CLL

    ConcRange = Mid$(ConcRange, Len(Delim) + 1)
   
End Function



Now use it like this:

=ConcRange(1:1,"\",TRUE,TRUE)

That will concatenate the items in row 1, delimiting with a backslash, and ignore the cells with blanks.

Regards,

Patrick
0
 
Patrick MatthewsCommented:
Daleoran,

The user-defined function I provided did exactly as the Asker requested.

Regards,

Patrick
0
 
ramkumar8516Author Commented:
Hi Patrick,

Thank you for the help, I was on leave for some medical attention on my shoulder and that is the reason i did not access the answers.  Sorry for the late response.

I appereciate your time and help,
Thank you once again,
Regards,
Ram
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now