Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.newusers
ann ann is offline
external usenet poster
 
Posts: 210
Default Help with transferring data in one column to multiple columns.

I have a list of data that ranges from one cell in column A to over 400 cells
(this can change as well) in column A.

At the moment I have to manually cut and paste the first 50 cell from column
A to Column B, then manually cut and paste the next 50 from column A to
column C, then the next 50 into column D and so on.

The above should be flexible where I can vary the number of cells to be cut
and pasted.

Is there a way that the above can be automated?

Any help offered would be appreciated.

--
Thank U and Regards

Ann

  #2   Report Post  
Posted to microsoft.public.excel.newusers
external usenet poster
 
Posts: 3,365
Default Help with transferring data in one column to multiple columns.

This code should do it for you - goes into a regular code module. Cut and
paste.
Use [Alt]+[F11] to open the VB Editor. When you get there, from it's menu
choose Insert | Module. Paste this code into the module and close the VB
Editor. To do the work, use Tools | Macro | Macros and select and run the
MoveGroups macro.

Sub MoveGroups()
'asks user for # of cells
'from col. A to move into
'other columns. Each group
'will be moved into individual
'columns beginning with B
Dim ColPointer As Long
Dim TopRow As Long
Dim CellsToMove As Long
Dim LastRowWithData As Long
Dim sourceRng As Range
Dim destRng As Range

CellsToMove = InputBox$("How many rows in a group" _
& " from column A?", "Rows in a Group", 0)
If CellsToMove < 1 Then
Exit Sub ' no work to do
End If
If Val(Left(Application.Version, 2)) < 12 Then
'in pre-2007 Excel
LastRowWithData = _
Range("A" & Rows.Count).End(xlUp).Row
Else
' in Excel 2007 (or later)
LastRowWithData = _
Range("A" & Rows.CountLarge).End(xlUp).Row
End If

ColPointer = 1 ' initialize
TopRow = 1 ' initialize
Do Until TopRow LastRowWithData
Set sourceRng = _
Range("A" & TopRow & ":" _
& Range("A" & TopRow).Offset _
(CellsToMove - 1, 0).Address)
Set destRng = _
Range(Range("A1").Offset(0, ColPointer).Address & _
":" & Range("A1").Offset(CellsToMove - 1, _
ColPointer).Address)
destRng.Value = sourceRng.Value
sourceRng.Clear
' update pointers
TopRow = TopRow + CellsToMove
ColPointer = ColPointer + 1
Loop
End Sub


"Ann" wrote:

I have a list of data that ranges from one cell in column A to over 400 cells
(this can change as well) in column A.

At the moment I have to manually cut and paste the first 50 cell from column
A to Column B, then manually cut and paste the next 50 from column A to
column C, then the next 50 into column D and so on.

The above should be flexible where I can vary the number of cells to be cut
and pasted.

Is there a way that the above can be automated?

Any help offered would be appreciated.

--
Thank U and Regards

Ann

  #3   Report Post  
Posted to microsoft.public.excel.newusers
ann ann is offline
external usenet poster
 
Posts: 210
Default Help with transferring data in one column to multiple columns.

JLatham,

Thank you very much, worked exactly as I wanted
--
Thank U and Regards

Ann



"JLatham" wrote:

This code should do it for you - goes into a regular code module. Cut and
paste.
Use [Alt]+[F11] to open the VB Editor. When you get there, from it's menu
choose Insert | Module. Paste this code into the module and close the VB
Editor. To do the work, use Tools | Macro | Macros and select and run the
MoveGroups macro.

Sub MoveGroups()
'asks user for # of cells
'from col. A to move into
'other columns. Each group
'will be moved into individual
'columns beginning with B
Dim ColPointer As Long
Dim TopRow As Long
Dim CellsToMove As Long
Dim LastRowWithData As Long
Dim sourceRng As Range
Dim destRng As Range

CellsToMove = InputBox$("How many rows in a group" _
& " from column A?", "Rows in a Group", 0)
If CellsToMove < 1 Then
Exit Sub ' no work to do
End If
If Val(Left(Application.Version, 2)) < 12 Then
'in pre-2007 Excel
LastRowWithData = _
Range("A" & Rows.Count).End(xlUp).Row
Else
' in Excel 2007 (or later)
LastRowWithData = _
Range("A" & Rows.CountLarge).End(xlUp).Row
End If

ColPointer = 1 ' initialize
TopRow = 1 ' initialize
Do Until TopRow LastRowWithData
Set sourceRng = _
Range("A" & TopRow & ":" _
& Range("A" & TopRow).Offset _
(CellsToMove - 1, 0).Address)
Set destRng = _
Range(Range("A1").Offset(0, ColPointer).Address & _
":" & Range("A1").Offset(CellsToMove - 1, _
ColPointer).Address)
destRng.Value = sourceRng.Value
sourceRng.Clear
' update pointers
TopRow = TopRow + CellsToMove
ColPointer = ColPointer + 1
Loop
End Sub


"Ann" wrote:

I have a list of data that ranges from one cell in column A to over 400 cells
(this can change as well) in column A.

At the moment I have to manually cut and paste the first 50 cell from column
A to Column B, then manually cut and paste the next 50 from column A to
column C, then the next 50 into column D and so on.

The above should be flexible where I can vary the number of cells to be cut
and pasted.

Is there a way that the above can be automated?

Any help offered would be appreciated.

--
Thank U and Regards

Ann

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Multiple columns of data into one long column beatrice25 Excel Discussion (Misc queries) 2 May 21st 06 01:18 AM
transferring data between multiple documents apollotommyboy Excel Discussion (Misc queries) 0 March 8th 06 06:31 PM
how to setup transferring data from row to column Toto Sanderson Setting up and Configuration of Excel 3 March 2nd 06 10:14 AM
How to setup transferring data from row to column? Toto Sanderson Excel Discussion (Misc queries) 5 March 1st 06 10:32 PM
splitting 1 column of data into multiple columns CiceroCF Setting up and Configuration of Excel 1 March 25th 05 01:50 AM


All times are GMT +1. The time now is 01:33 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"