Solved

Creating a script and need to generate from 4 columns in Excel

Posted on 2011-03-07
14
192 Views
Last Modified: 2012-05-11
I have 4 columns of data and would like to convert them on the next sheet to row 1,2,3,4..

line1   |  line 2|  line3  | line4  

would like to make it....

line1
line2
line3
line4
0
Comment
Question by:BlakeISS
  • 7
  • 6
14 Comments
 
LVL 10

Expert Comment

by:Makrini
ID: 35063461
Sub Macro1()

    Sheets("Sheet1").Range("A1:D1").Copy
    Sheets("Sheet2").Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Application.CutCopyMode = False
End Sub

Open in new window

0
 

Author Comment

by:BlakeISS
ID: 35064060
When I run this macro, it does only the first record. How do I make it run for all the records?
1:
2:
3:
4:
5:
6:
7:
 Sub Macro1()

    Sheets("Sheet1").Range("A1:D1").Copy
    Sheets("Sheet2").Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Application.CutCopyMode = False
End Sub

Open in new window

0
 
LVL 10

Expert Comment

by:Makrini
ID: 35064073
Where is your data, and where you you want it?

is it

row 1 - 1,2,3,4
row 2 - 5,6,7,8

and going to
1,5
2,6
3,7
4,8

or
1
2
3
4
5
6
7
8
0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
LVL 10

Expert Comment

by:Makrini
ID: 35064113
Sub Macro1()  
 Lastrow = Sheets("Sheet1").range("A" & rows.count).end(xlup).row
for i = 0 to lastrow - 1
    Sheets("Sheet1").Range("A1:D1").offset(i,0).Copy  
    Sheets("Sheet2").Range("A1").offset(0,i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _  
        False, Transpose:=True  
    Application.CutCopyMode = False
next i
End Sub

Open in new window

0
 

Author Comment

by:BlakeISS
ID: 35064115
in sheet1
columns are  colunm1: are link special mailboxes desktop t2test14 mailbox column2 put properties "mailboxes:mailbox" 1016 6 0 1321 6 0      column3rename "mailboxes:mailbox" "t2test14s mailbox"       column4 ###


I would like to output to sheet2 to be
row1
row2
row3
row4

link special mailboxes desktop t2test14 mailbox
put properties "mailboxes:mailbox" 1016 6 0 1321 6 0
rename "mailboxes:mailbox" "t2test14s mailbox"
###
0
 

Author Comment

by:BlakeISS
ID: 35064116
I have 1400 records to do this with...
0
 
LVL 10

Expert Comment

by:Makrini
ID: 35064127
Maybe if you provide an example workbook showing from data on one sheet and to data on second sheet
0
 

Author Comment

by:BlakeISS
ID: 35064158
Here is a sample
Book1.xls
0
 
LVL 10

Expert Comment

by:Makrini
ID: 35064234
In sheet 2 do you want the next row of data into column B?
0
 
LVL 10

Assisted Solution

by:Makrini
Makrini earned 100 total points
ID: 35064261
If so...

Sub Macro1()
 lastrow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
For i = 0 To lastrow - 1
    Sheets("Sheet1").Range("A1:D1").Offset(i, 0).Copy
    Sheets("Sheet2").Range("A1").Offset(0, i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Application.CutCopyMode = False
Next i
End Sub

Open in new window

0
 

Author Comment

by:BlakeISS
ID: 35068551
Ok this macro created them horizontally and did not put them into a list.
It did however, try to do the entire list.

1:
2:
3:
4:
5:
6:
7:
8:
9:
 Sub Macro1()
 lastrow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
For i = 0 To lastrow - 1
    Sheets("Sheet1").Range("A1:D1").Offset(i, 0).Copy
    Sheets("Sheet2").Range("A1").Offset(0, i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Application.CutCopyMode = False
Next i
End Sub

Open in new window

0
 

Author Comment

by:BlakeISS
ID: 35068644
0
 

Author Comment

by:BlakeISS
ID: 35068654
0
 
LVL 1

Accepted Solution

by:
benyami earned 400 total points
ID: 35071069
It looks like your end result will be a text based script file. If each column always starts with the same phrase, you could do the following:

Copy and paste the data into your favorite text editor.
Search and replace every time "put" or "link" appears with a newline character preceding "put" or "link"

Example:
FIND:
   put properties
REPLACE:
                             <---{insert newline character or copy and paste a line return}
   put properties

For each row in your spreadsheet, this will turn:
link special mailboxes desktop t2test14 mailbox      put properties "mailboxes:mailbox" 1016 6 0 1321 6 0      rename "mailboxes:mailbox" "t2test14s mailbox"      ###

into:
link special mailboxes desktop t2test14 mailbox      
put properties "mailboxes:mailbox" 1016 6 0 1321 6 0      
rename "mailboxes:mailbox" "t2test14s mailbox"      
###
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Microsoft Office Picture Manager is not included in Office 2013. This comes as a shock to users upgrading from earlier versions of Office, such as 2007 and 2010, where Picture Manager was included as a standard application. This article explains how…
In this article we discuss how to recover the missing Outlook 2011 for Mac data like Emails and Contacts manually.
This video shows the viewer how to set up and create Footnotes in their document. Click on the References tab: Select "Insert Footnote": Type in desired text:
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…

803 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question