Solved

Excel 2007 - need to have data on one sheet copied to another sheet but in a different layout

Posted on 2011-03-25
12
258 Views
Last Modified: 2012-05-11
I have a two step project.
First project. Please see attached excel file.

I need the data in the Goga Tora tab to be pasted to the Consolidated tab, IF the date is today's date, and placed under the columns shown in the Consolidated sheet. I have highlighted the customers in different colors to help make it easier to see what I need to have done with a click of a button, and has been done manually.

In the attached example, you will see that in the Consolidated sheet has this done already. I need it done when a button is clicked on the Goga Tora tab. Please feel free to ask if any questions.

The second project will be posted as a related question and assigned points for its completion. Consolidate1.xls
0
Comment
Question by:JaseS
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 3
  • +1
12 Comments
 
LVL 7

Expert Comment

by:harr22
ID: 35216800
where are you getting the info for "Activate Y or N" and "Comment"

should it always be "Y" and "Regular Load"
0
 
LVL 39

Expert Comment

by:nutsch
ID: 35216854
Assuming yes, here is my code:

Sub TransferData()
Dim shtConso As Worksheet, shtDet As Worksheet
Dim lgRow As Long, lgCol As Long, i As Long, lgRowDest

Application.ScreenUpdating = False

Set shtConso = ActiveSheet
Set shtDet = Sheets("Goga Tora")

On Error Resume Next
lgRow = Application.Match(CLng(Date), shtDet.Columns("E"), 0)

If Err <> 0 Then
    MsgBox "Date not found"
    Exit Sub
End If

For lgCol = 6 To shtDet.Cells(1, Columns.Count).End(xlToLeft).Column
    If shtDet.Cells(1, lgCol) = "Card Number" Then
        lgRowDest = shtConso.Cells(Rows.Count, "D").End(xlUp).Offset(1).Row
        shtDet.Cells(lgRow, lgCol).Resize(1, 2).Copy shtConso.Cells(lgRowDest, "D")
        shtDet.Cells(lgRow, lgCol).Offset(, 2).Resize(1, 2).Copy shtConso.Cells(lgRowDest, "H")
        shtConso.Cells(lgRowDest, "J") = Date
        shtConso.Cells(lgRowDest, "G") = "Regular Load"
        shtConso.Cells(lgRowDest, "F") = "Y"
    End If
Next

Application.ScreenUpdating = True
End Sub

Open in new window


THomas
0
 
LVL 7

Assisted Solution

by:harr22
harr22 earned 50 total points
ID: 35216940
and assuming yes, here is mine:

 
Sub Foo()
    EndRowGoga = Range("E65536").End(xlUp).Row
    For Each c In Sheets("Goga Tora").Range("E2:E" & EndRowGoga)
        If c.Value = Date Then
            For i = 1 To 28 Step 4
                EndRowMC = Sheets("MC Consolidated").Range("D65536").End(xlUp).Row
                Sheets("Goga Tora").Range(Cells(c.Row, 5 + i).Address _
                    & ":" & Cells(c.Row, 6 + i).Address).Copy
                Sheets("MC Consolidated").Range("D" & EndRowMC + 1).PasteSpecial
                Sheets("MC Consolidated").Range("F" & EndRowMC + 1) = "Y"
                Sheets("MC Consolidated").Range("G" & EndRowMC + 1) = "Regular Load"
                Sheets("Goga Tora").Range(Cells(c.Row, 7 + i).Address _
                    & ":" & Cells(c.Row, 8 + i).Address).Copy
                Sheets("MC Consolidated").Range("H" & EndRowMC + 1).PasteSpecial
                Sheets("MC Consolidated").Range("J" & EndRowMC + 1) = Date
            Next i
        End If
    Next c
End Sub

Open in new window

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:JaseS
ID: 35216965
Nutch,

Tried your code, thank you, and it copied the right data, but pasted it back on the Goga Tora tab.
Needs to go on the MC Consolidated sheet.

And yes, to har22's question
0
 
LVL 7

Expert Comment

by:harr22
ID: 35216982
Nutch's would work fine if you ran it from the MC tab. I believe mine will work from either tab.
0
 
LVL 39

Accepted Solution

by:
nutsch earned 450 total points
ID: 35217003
My apologies, I had misread from where you wanted to launch the macro:
Sub TransferData()
Dim shtConso As Worksheet, shtDet As Worksheet
Dim lgRow As Long, lgCol As Long, i As Long, lgRowDest

Application.ScreenUpdating = False

Set shtConso = Sheets("MC Consolidated")
Set shtDet = ActiveSheet

On Error Resume Next
lgRow = Application.Match(CLng(Date), shtDet.Columns("E"), 0)

If Err <> 0 Then
    MsgBox "Date not found"
    Exit Sub
End If

For lgCol = 6 To shtDet.Cells(1, Columns.Count).End(xlToLeft).Column
    If shtDet.Cells(1, lgCol) = "Card Number" Then
        lgRowDest = shtConso.Cells(Rows.Count, "D").End(xlUp).Offset(1).Row
        shtDet.Cells(lgRow, lgCol).Resize(1, 2).Copy shtConso.Cells(lgRowDest, "D")
        shtDet.Cells(lgRow, lgCol).Offset(, 2).Resize(1, 2).Copy shtConso.Cells(lgRowDest, "H")
        shtConso.Cells(lgRowDest, "J") = Date
        shtConso.Cells(lgRowDest, "G") = "Regular Load"
        shtConso.Cells(lgRowDest, "F") = "Y"
    End If
Next

Application.ScreenUpdating = True
End Sub

Open in new window

0
 

Author Comment

by:JaseS
ID: 35217083
Tried both codes and now they work, however har22 flips screens back and forth, copying and pasting. A bit disconcerting and since my computer tends to crash often, I'd rather not push it.

Thank you to both! you are fast.

Now the 2nd part of this project I will post as a related question.
0
 

Author Closing Comment

by:JaseS
ID: 35217113
Fast expert work by both. Thank you. Saves me a lot of time. Did you see my other project post:
Summing numbers from multiple sheets?

Related question coming up!
0
 
LVL 39

Expert Comment

by:nutsch
ID: 35217128
The reason my code doesn't flicker is because of the lines

Application.ScreenUpdating = False
'...
Application.ScreenUpdating = true

This prevents screen updating and speeds up the macro considerably.

Thomas
0
 
LVL 39

Expert Comment

by:nutsch
ID: 35217136
>Did you see my other project post:
Summing numbers from multiple sheets?


I posted a solution already.

Thomas
0
 
LVL 23

Expert Comment

by:redrumkev
ID: 35217583
nutsch,

How are you doing?

FYI - the last 5 links in your profile for questions you have answered in the past, are not correct, they are missing the "www.experts-exchange.com", they just have http:/Q(number)#(post_number).

Nice work on this question - I was trying a solution, but mine was multiple for loops, I like how you merged these, I am going to use this logic elsewhere!

Regards,
Kevin
0
 
LVL 39

Expert Comment

by:nutsch
ID: 35217637
Thanks Kevin, doing fine, and I've cleaned up my profile too.

T
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Freeze panes is an option within all variants of Excel to enable parts of a sheet to remain stationary when the cursor is in another part of the sheet. This is a very useful feature which is overlooked or under used.
This article describes a serious pitfall that can happen when deleting shapes using VBA.
This Micro Tutorial demonstrates in Microsoft Excel how to consolidate your marketing data by creating an interactive charts using form controls. This creates cool drop-downs for viewers of your chart to choose from.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

617 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