ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Urgent Help Needed "Re-orient data" (https://www.excelbanter.com/excel-programming/361465-urgent-help-needed-re-orient-data.html)

barkiny[_14_]

Urgent Help Needed "Re-orient data"
 

In column A
There are companies (Company A, Company B....)
In column B
There are dates (01/01/2006 , 01/02/2006....)

I want to re-orient data so that
In column A the company set will be repeating assingned to each
date...

it will look like that

Company A 01/01/2006
Company B 01/01/2006
Company A 01/02/2006
Company B 01/02/2006

thanks in advance...


+-------------------------------------------------------------------+
|Filename: sheet1.zip |
|Download: http://www.excelforum.com/attachment.php?postid=4758 |
+-------------------------------------------------------------------+

--
barkiny
------------------------------------------------------------------------
barkiny's Profile: http://www.excelforum.com/member.php...o&userid=20397
View this thread: http://www.excelforum.com/showthread...hreadid=542032


Bob Phillips[_14_]

Urgent Help Needed "Re-orient data"
 
Sub ReorientData()
Dim iLastRow As Long
Dim cDates As Long
Dim i As Long, j As Long
Dim nCalculation
Dim aryDates

With Application
.ScreenUpdating = False
nCalculation = .Calculation
.Calculation = xlCalculationManual
End With

iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
cDates = Cells(Rows.Count, "B").End(xlUp).Row - 1
ReDim aryDates(1 To cDates)
For i = 1 To cDates
aryDates(i) = Cells(i + 1, "B").Value
Next i
For i = iLastRow To 2 Step -1
Rows(i + 1).Resize(cDates - 1).Insert
For j = 1 To cDates
Cells(i + j - 1, "B").Value = aryDates(j)
Next j
Cells(i, "A").Resize(cDates).Value = Cells(i, "A").Value
Next i

'reset status quo
With Application
.Calculation = nCalculation
.ScreenUpdating = True
End With

End Sub


--
HTH

Bob Phillips

(remove xxx from email address if mailing direct)

"barkiny" wrote in
message ...

In column A
There are companies (Company A, Company B....)
In column B
There are dates (01/01/2006 , 01/02/2006....)

I want to re-orient data so that
In column A the company set will be repeating assingned to each
date...

it will look like that

Company A 01/01/2006
Company B 01/01/2006
Company A 01/02/2006
Company B 01/02/2006

thanks in advance...


+-------------------------------------------------------------------+
|Filename: sheet1.zip |
|Download: http://www.excelforum.com/attachment.php?postid=4758 |
+-------------------------------------------------------------------+

--
barkiny
------------------------------------------------------------------------
barkiny's Profile:

http://www.excelforum.com/member.php...o&userid=20397
View this thread: http://www.excelforum.com/showthread...hreadid=542032




barkiny[_16_]

Urgent Help Needed "Re-orient data"
 

thanks for the code
but i think it repeats companies
can you change the repeating items

Not like
Company 1 date1
Company 1 date2
Company 2 date1
Company 2 date2

but like that
Company 1 date1
Company 2 date1
Company 1 date2
Company 2 date2

and is it possible to run the macro in sheet2 so that it wont overwrite
the main values

thanks alot
regards


--
barkiny
------------------------------------------------------------------------
barkiny's Profile: http://www.excelforum.com/member.php...o&userid=20397
View this thread: http://www.excelforum.com/showthread...hreadid=542032


Bob Phillips[_14_]

Urgent Help Needed "Re-orient data"
 
I think this is what you want

Sub ReorientData()
Dim cData As Long
Dim cDates As Long
Dim i As Long, j As Long
Dim nCalculation
Dim aryDates

With Application
.ScreenUpdating = False
nCalculation = .Calculation
.Calculation = xlCalculationManual
End With

cData = Sheet1.Cells(Rows.Count, "A").End(xlUp).Row - 1
cDates = Sheet1.Cells(Rows.Count, "B").End(xlUp).Row - 1
ReDim aryDates(1 To cDates)
For i = 1 To cDates
aryDates(i) = Sheet1.Cells(i + 1, "B").Value
Next i
Sheet1.Range("A1:B1").Copy Sheet2.Range("A1")
For i = 1 To cDates
Sheet1.Cells(2, "A").Resize(cData).Copy Sheet2.Cells(cData * (i - 1)
+ 2, "A")
Sheet2.Cells(cData * (i - 1) + 2, "B").Resize(cData).Value =
aryDates(i)
Next i

'reset status quo
With Application
.Calculation = nCalculation
.ScreenUpdating = True
End With

End Sub

--
HTH

Bob Phillips

(remove xxx from email address if mailing direct)

"barkiny" wrote in
message ...

thanks for the code
but i think it repeats companies
can you change the repeating items

Not like
Company 1 date1
Company 1 date2
Company 2 date1
Company 2 date2

but like that
Company 1 date1
Company 2 date1
Company 1 date2
Company 2 date2

and is it possible to run the macro in sheet2 so that it wont overwrite
the main values

thanks alot
regards


--
barkiny
------------------------------------------------------------------------
barkiny's Profile:

http://www.excelforum.com/member.php...o&userid=20397
View this thread: http://www.excelforum.com/showthread...hreadid=542032




barkiny[_17_]

Urgent Help Needed "Re-orient data"
 

yes, that's what i need

thank you very much

regard

--
barkin
-----------------------------------------------------------------------
barkiny's Profile: http://www.excelforum.com/member.php...fo&userid=2039
View this thread: http://www.excelforum.com/showthread.php?threadid=54203



All times are GMT +1. The time now is 03:53 PM.

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