ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Macro Help: Concatenate Populated Cells in Column A (https://www.excelbanter.com/excel-discussion-misc-queries/30173-macro-help-concatenate-populated-cells-column.html)

TJM

Macro Help: Concatenate Populated Cells in Column A
 

Hello all -

Here is what I am wanting to do: I have a spreadsheet that has X number
of cells populated in column A. I want to write a macro that will do the
following: concatenate all populated cells in column A into one cell,
separated by a comma (with no space).

Column A
A1
A2
A3

Becomes
A1,A2,A3

The cells in column A may vary depending on a given spreadsheet. I want
to be able to use the macro on any spreadsheet without having to tweak
the cell range manually.

Thanks!

Tom


--
TJM
------------------------------------------------------------------------
TJM's Profile: http://www.excelforum.com/member.php...o&userid=12746
View this thread: http://www.excelforum.com/showthread...hreadid=378139


Jason Morin

Try:

Sub MConcat()

Dim cell As Range
Dim rDestCell As Range
Dim nLastRow As Long
Dim strConcat As String
Const cDelim As String = ","

nLastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set rDestCell = ActiveSheet.[D1] '<-- Change cell

For Each cell In Range("A1:A" & nLastRow)
If Not IsEmpty(cell) Then
strConcat = strConcat & cell.Text & cDelim
End If
Next

rDestCell = Left(strConcat, Len(strConcat) - 1)

End Sub

---
HTH
Jason
Atlanta, GA

"TJM" wrote:


Hello all -

Here is what I am wanting to do: I have a spreadsheet that has X number
of cells populated in column A. I want to write a macro that will do the
following: concatenate all populated cells in column A into one cell,
separated by a comma (with no space).

Column A
A1
A2
A3

Becomes
A1,A2,A3

The cells in column A may vary depending on a given spreadsheet. I want
to be able to use the macro on any spreadsheet without having to tweak
the cell range manually.

Thanks!

Tom


--
TJM
------------------------------------------------------------------------
TJM's Profile: http://www.excelforum.com/member.php...o&userid=12746
View this thread: http://www.excelforum.com/showthread...hreadid=378139



Easy Solutions

If the number of rows is always the same in column A, then you could use the
& funcionality in excel and simply us =A1&","&A2&","&a3...... however it will
not help if the result is variable in length.

"TJM" wrote:


Hello all -

Here is what I am wanting to do: I have a spreadsheet that has X number
of cells populated in column A. I want to write a macro that will do the
following: concatenate all populated cells in column A into one cell,
separated by a comma (with no space).

Column A
A1
A2
A3

Becomes
A1,A2,A3

The cells in column A may vary depending on a given spreadsheet. I want
to be able to use the macro on any spreadsheet without having to tweak
the cell range manually.

Thanks!

Tom


--
TJM
------------------------------------------------------------------------
TJM's Profile: http://www.excelforum.com/member.php...o&userid=12746
View this thread: http://www.excelforum.com/showthread...hreadid=378139



Jack Sons

Jason,

What code is to be used for not concatenating all contigiously used cells in
column A, but for all cells in a selected range, even if one ore more cells
in that range are blank (empty)?

Jack Sons
The Netherlands

"Jason Morin" schreef in bericht
...
Try:

Sub MConcat()

Dim cell As Range
Dim rDestCell As Range
Dim nLastRow As Long
Dim strConcat As String
Const cDelim As String = ","

nLastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set rDestCell = ActiveSheet.[D1] '<-- Change cell

For Each cell In Range("A1:A" & nLastRow)
If Not IsEmpty(cell) Then
strConcat = strConcat & cell.Text & cDelim
End If
Next

rDestCell = Left(strConcat, Len(strConcat) - 1)

End Sub

---
HTH
Jason
Atlanta, GA

"TJM" wrote:


Hello all -

Here is what I am wanting to do: I have a spreadsheet that has X number
of cells populated in column A. I want to write a macro that will do the
following: concatenate all populated cells in column A into one cell,
separated by a comma (with no space).

Column A
A1
A2
A3

Becomes
A1,A2,A3

The cells in column A may vary depending on a given spreadsheet. I want
to be able to use the macro on any spreadsheet without having to tweak
the cell range manually.

Thanks!

Tom


--
TJM
------------------------------------------------------------------------
TJM's Profile:
http://www.excelforum.com/member.php...o&userid=12746
View this thread:
http://www.excelforum.com/showthread...hreadid=378139






All times are GMT +1. The time now is 03:45 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com