View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Rick Rothstein Rick Rothstein is offline
external usenet poster
 
Posts: 5,934
Default Need macro that concatenates cells with text

For instruction purposes, if we eliminate the generalization code and simply use the source and destination cells you indicated, we can make my code look a lot less scary<g....

Sub Concatter()
Dim X As Long, Off As Long, R As Range
Set R = Range(Range("A1"), Cells(Rows.Count, "A").End(xlUp)).SpecialCells(xlCellTypeConstan ts)
For X = 1 To R.Areas.Count
Range("B1").Offset(Off).Value = Join(WorksheetFunction.Transpose(R.Areas(X)))
Off = Off + 1
Next
End Sub

Again, this assumes the cells contain text constants.

--
Rick (MVP - Excel)


"Rick Rothstein" wrote in message ...
Assuming your cells contain text (as your post indicated they did) and not
formulas, give this code a try (set the DataStartCell and the
DestinationStartCell for your actual setup)....

Sub Concatter()
Dim X As Long, Off As Long, R As Range, LastCell As Range
Dim DataStartCell As Range, DestinationStartCell As Range
Set DataStartCell = Range("A1")
Set DestinationStartCell = Range("B1")
Set LastCell = Cells(Rows.Count, DataStartCell.Column).End(xlUp)
Set R = Range(DataStartCell, LastCell).SpecialCells(xlCellTypeConstants)
For X = 1 To R.Areas.Count
DestinationStartCell.Offset(Off).Value = _
Join(WorksheetFunction.Transpose(R.Areas(X)))
Off = Off + 1
Next
End Sub

--
Rick (MVP - Excel)


"andrei" wrote in message
...
I have in column A cells with the following content :

A1 : Mother
A2 : go
A3 : home
A4 : ( empty cell)
A5: ( empty cell)
A6 : Daddy
A7 : works
A8 : in a
A9 : mine
A10 : (empty cell)
A11 : My uncle
A12 : is a spy

What i want in a macro which does that

B1 : Mother go home
B2 : Daddy works in a mine
B3 : My uncle is a spy

The macro should concatenate the cells with text and "understand" empty
cells as delimiter .