View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Move Different Columns of Data to Single Column.

Sub PutinColumnA()
Dim rng as Range, rng1 as Range
Dim sStr as String
Dim cell as Range, cell1 as Range
Set rng = cells.specialCells(xlCellTypeLastCell)
set rng = Range(Range("A1"),cells(rng.row,1))
for each cell in rng
set rng1 = cells(cell.row,"IV").End(xltoLeft)
sStr = ""
for each cell1 in Range(cell.offset(0,1),rng1)
if not isempty(cell1) then
sStr = sStr & trim(cell1.value)
end if
cell.Vaue = cell.Value & sStr
Range(cell.offset(0,1),rng1).ClearContents
Next
Next
End Sub

--
Regards,
Tom Ogilvy



"willik " wrote in message
...
Hello,

I am new to VB with Excel 2002 and I am a lost goose right about now.

I am trying to move different columns of text data to a single column.
i.e. Column E to column A. Col D to Col A. Col C to Col A. and Col B
to Col A. Each column has different size rows. The columns and row
sizes change from day to day, so I need a macro that will recognize
different size columns and rows.

Today I have columns A through E with different length rows.

I am not sure how to identify the array size, since it will be changing
each time I export the data from another database. Once I have the data
in Excel then I need to automatically move
( cut and paste ) or whatever, to populate column A with all the data
from the other columns. I do not care how the data is stacked initially
in column A. I can do a sort, in the macro, once the data is in column
A.

I performed this task with the Excel VB recorder and came up the
following code for known cells or array size. My problem is that the
array size, i.e. column and row size will change each time I export new
data from other database.

Sub MoveColumnsToA()
'
' MoveColumnsToA Macro
' Macro recorded 2/26/2004 by willik
'

'
Range("E1:E11").Select
Selection.Cut
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 25
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 61