Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Hello, I have a list of 10 names on sheet1 in column A. Column B had monetar values besides the names. Sheet2 has those same names in column A. Row 1 uptop has dates space apart every 7 days. I need a macro to find a name from sheet1, look on sheet 2 for th matching name, then place its value in the next empty column. Hit th button again, and it places the value in the next column. See Exampl below: Sheet 1 (this week): A B 1 Mark $50 2 Paul $25 3 Sally $15 Next Week things has changed... Sheet1 (next week): A B 1 Mark $20 2 Paul $80 3 Sally $35 Sheet 2 (which is the DataBase): A B C 1 Mark $50 $20 2 Paul $25 $80 3 Sally $15 $35 Note: I should be able to add more names if necessary to the sheet Thanks, EMo -- EMo ----------------------------------------------------------------------- EMoe's Profile: http://www.excelforum.com/member.php...fo&userid=2318 View this thread: http://www.excelforum.com/showthread.php?threadid=37505 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
In my opinion you should re-evaluate how you want to do this. The path you
are going down will be problematic. My recomendation would be (as you even suggest) to make this more like a database. Sheet 1 should be 3 columns instead of two. New records will be appended to the end of the list. The third column will be the date. You can then just create a pivot table on sheet 2 referencing the source data on sheet 1. You will be able to get your weeks across the top and the people down the side... No macros... Easy to do... -- HTH... Jim Thomlinson "EMoe" wrote: Hello, I have a list of 10 names on sheet1 in column A. Column B had monetary values besides the names. Sheet2 has those same names in column A. Row 1 uptop has dates spaced apart every 7 days. I need a macro to find a name from sheet1, look on sheet 2 for the matching name, then place its value in the next empty column. Hit the button again, and it places the value in the next column. See Example below: Sheet 1 (this week): A B 1 Mark $50 2 Paul $25 3 Sally $15 Next Week things has changed... Sheet1 (next week): A B 1 Mark $20 2 Paul $80 3 Sally $35 Sheet 2 (which is the DataBase): A B C 1 Mark $50 $20 2 Paul $25 $80 3 Sally $15 $35 Note: I should be able to add more names if necessary to the sheet Thanks, EMoe -- EMoe ------------------------------------------------------------------------ EMoe's Profile: http://www.excelforum.com/member.php...o&userid=23183 View this thread: http://www.excelforum.com/showthread...hreadid=375050 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Try this macro Sub macro() Dim i, name, monet As Variant i = 2 Worksheets("Sheet1").Select While Range("a" & i).Value < "" name = Range("a" & i).Value monet = Range("b" & i).Value Worksheets("Sheet2").Select Columns("A:A").Select On Error GoTo a: Selection.Find(What:=name, After:=ActiveCell LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext _ MatchCase:=False).Activate temp = ActiveCell.Address ActiveCell.Select Selection.End(xlToRight).Select If ActiveCell.Column = 256 Then Range(temp).Offset(0, 1).Select Else ActiveCell.Offset(0, 1).Select End If ActiveCell.Value = monet a: If (Err.Description < "") Then Err.Clear End If Worksheets("Sheet1").Select i = i + 1 Wend End Su -- anilsolipura ----------------------------------------------------------------------- anilsolipuram's Profile: http://www.excelforum.com/member.php...fo&userid=1627 View this thread: http://www.excelforum.com/showthread.php?threadid=37505 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() The code works well. I see that it finds the next blank cell, then fills it. So if I ad another name after about 5 transfers. It will add that amount to th first blank cell, and not over to the 6th transfer column. But it still works for me. I just fill the empty cells with 0' (conditional formatted to white text color, so that they're invisible so that the code goes to the correct column which has the correc date. Thanks, EMo -- EMo ----------------------------------------------------------------------- EMoe's Profile: http://www.excelforum.com/member.php...fo&userid=2318 View this thread: http://www.excelforum.com/showthread.php?threadid=37505 |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Thanks for the reply! Sub copytolastcol() With Sheets("yourdestinationsheetname") Range("a2:a20").Copy .Range("a2")'copies names lastcol = .Cells.SpecialCells(xlCellTypeLastCell).Column .Cells(1, lastcol + 1) = .Cells(1, lastcol) + 7'adds date For Each c In Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) x = .Columns(1).Find(c).Row .Cells(x, lastcol + 1).Value = Cells(c.Row, 2) Next End With End Sub Yes I really want to do this, with the option of adding new names. Whe I run the code, I get "Compile error, Argument not optional, and exce highlights lastcol = I haven't a clue whats wrong. I placed the code in a module, as well a in This Workbook. Still not working. EMo -- EMo ----------------------------------------------------------------------- EMoe's Profile: http://www.excelforum.com/member.php...fo&userid=2318 View this thread: http://www.excelforum.com/showthread.php?threadid=37505 |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I thought you needed a "." in front of any objects which have a parent = to
the item you referenced using "With" Sorry if not helpful, I am sure someone will be more helpful. "EMoe" wrote in message ... Thanks for the reply! Sub copytolastcol() With Sheets("yourdestinationsheetname") Range("a2:a20").Copy .Range("a2")'copies names lastcol = .Cells.SpecialCells(xlCellTypeLastCell).Column Cells(1, lastcol + 1) = .Cells(1, lastcol) + 7'adds date For Each c In Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) x = .Columns(1).Find(c).Row Cells(x, lastcol + 1).Value = Cells(c.Row, 2) Next End With End Sub Yes I really want to do this, with the option of adding new names. When I run the code, I get "Compile error, Argument not optional, and excel highlights lastcol = I haven't a clue whats wrong. I placed the code in a module, as well as in This Workbook. Still not working. EMoe -- EMoe ------------------------------------------------------------------------ EMoe's Profile: http://www.excelforum.com/member.php...o&userid=23183 View this thread: http://www.excelforum.com/showthread...hreadid=375050 |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
this is what I TESTED and sent with all .'s in the right place. Have no idea
why some were deleted? Sub copytolastcol() With Sheets("sheet2") Range("a2:a10").Copy .Range("a2") lastcol = .Cells.SpecialCells(xlCellTypeLastCell).Column .Cells(1, lastcol + 1) = .Cells(1, lastcol) + 7 For Each c In Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) x = .Columns(1).Find(c).Row .Cells(x, lastcol + 1).Value = Cells(c.Row, 2) Next End With End Sub -- Don Guillett SalesAid Software "William Benson" wrote in message ... I thought you needed a "." in front of any objects which have a parent = to the item you referenced using "With" Sorry if not helpful, I am sure someone will be more helpful. "EMoe" wrote in message ... Thanks for the reply! Sub copytolastcol() With Sheets("yourdestinationsheetname") Range("a2:a20").Copy .Range("a2")'copies names lastcol = .Cells.SpecialCells(xlCellTypeLastCell).Column Cells(1, lastcol + 1) = .Cells(1, lastcol) + 7'adds date For Each c In Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) x = .Columns(1).Find(c).Row Cells(x, lastcol + 1).Value = Cells(c.Row, 2) Next End With End Sub Yes I really want to do this, with the option of adding new names. When I run the code, I get "Compile error, Argument not optional, and excel highlights lastcol = I haven't a clue whats wrong. I placed the code in a module, as well as in This Workbook. Still not working. EMoe -- EMoe ------------------------------------------------------------------------ EMoe's Profile: http://www.excelforum.com/member.php...o&userid=23183 View this thread: http://www.excelforum.com/showthread...hreadid=375050 |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I did not get any error except that lastcol wasn't declared (so I remove
option explicit) and then it ran... "Don Guillett" wrote in message ... this is what I TESTED and sent with all .'s in the right place. Have no idea why some were deleted? Sub copytolastcol() With Sheets("sheet2") Range("a2:a10").Copy .Range("a2") lastcol = .Cells.SpecialCells(xlCellTypeLastCell).Column .Cells(1, lastcol + 1) = .Cells(1, lastcol) + 7 For Each c In Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) x = .Columns(1).Find(c).Row .Cells(x, lastcol + 1).Value = Cells(c.Row, 2) Next End With End Sub -- Don Guillett SalesAid Software "William Benson" wrote in message ... I thought you needed a "." in front of any objects which have a parent = to the item you referenced using "With" Sorry if not helpful, I am sure someone will be more helpful. "EMoe" wrote in message ... Thanks for the reply! Sub copytolastcol() With Sheets("yourdestinationsheetname") Range("a2:a20").Copy .Range("a2")'copies names lastcol = .Cells.SpecialCells(xlCellTypeLastCell).Column Cells(1, lastcol + 1) = .Cells(1, lastcol) + 7'adds date For Each c In Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) x = .Columns(1).Find(c).Row Cells(x, lastcol + 1).Value = Cells(c.Row, 2) Next End With End Sub Yes I really want to do this, with the option of adding new names. When I run the code, I get "Compile error, Argument not optional, and excel highlights lastcol = I haven't a clue whats wrong. I placed the code in a module, as well as in This Workbook. Still not working. EMoe -- EMoe ------------------------------------------------------------------------ EMoe's Profile: http://www.excelforum.com/member.php...o&userid=23183 View this thread: http://www.excelforum.com/showthread...hreadid=375050 |
#10
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() I find one problem with this code. If you format the cells (e.g. with currency or even with borders) the code skips those cells, and goes to the next one. If you try to delete the formats, the code still continues to the next cell. Code: Sub copytolastcol() With Sheets("sheet2") Range("a2:a10").Copy .Range("a2") lastcol = .Cells.SpecialCells(xlCellTypeLastCell).Column ..Cells(1, lastcol + 1) = .Cells(1, lastcol) + 7 For Each c In Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) x = .Columns(1).Find(c).Row ..Cells(x, lastcol + 1).Value = Cells(c.Row, 2) Next End With End Sub How can you help? Thanks, ME -- EMoe ------------------------------------------------------------------------ EMoe's Profile: http://www.excelforum.com/member.php...o&userid=23183 View this thread: http://www.excelforum.com/showthread...hreadid=375050 |
#11
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
This code does not skip formatting, it simply ignores it since you only
asked to copy the values. If you want the formatting you will need to use copy/paste special Sub copytolastcol() Application.ScreenUpdating = False With Sheets("sheet2") Range("a2:a10").Copy .Range("a2") lastcol = .Cells.SpecialCells(xlCellTypeLastCell).Column ..Cells(1, lastcol + 1) = .Cells(1, lastcol) + 7 For Each c In Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) x = .Columns(1).Find(c).Row '===== Cells(c.Row, 2).Copy ..Cells(x, lastcol + 1).PasteSpecial Paste:=xlPasteAll '===== 'instead of '.Cells(x, lastcol + 1).Value = Cells(c.Row, 2) Next End With Application.ScreenUpdating = False End Sub -- Don Guillett SalesAid Software "EMoe" wrote in message ... I find one problem with this code. If you format the cells (e.g. with currency or even with borders) the code skips those cells, and goes to the next one. If you try to delete the formats, the code still continues to the next cell. Code: Sub copytolastcol() With Sheets("sheet2") Range("a2:a10").Copy .Range("a2") lastcol = .Cells.SpecialCells(xlCellTypeLastCell).Column Cells(1, lastcol + 1) = .Cells(1, lastcol) + 7 For Each c In Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row) x = .Columns(1).Find(c).Row Cells(x, lastcol + 1).Value = Cells(c.Row, 2) Next End With End Sub How can you help? Thanks, ME -- EMoe ------------------------------------------------------------------------ EMoe's Profile: http://www.excelforum.com/member.php...o&userid=23183 View this thread: http://www.excelforum.com/showthread...hreadid=375050 |
#12
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Excellent!!! This code does exactly what I need. Regards, EMo -- EMo ----------------------------------------------------------------------- EMoe's Profile: http://www.excelforum.com/member.php...fo&userid=2318 View this thread: http://www.excelforum.com/showthread.php?threadid=37505 |
#13
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
glad to hep
-- Don Guillett SalesAid Software "EMoe" wrote in message ... Excellent!!! This code does exactly what I need. Regards, EMoe -- EMoe ------------------------------------------------------------------------ EMoe's Profile: http://www.excelforum.com/member.php...o&userid=23183 View this thread: http://www.excelforum.com/showthread...hreadid=375050 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
transfer datas into different sheet using macro? | Excel Discussion (Misc queries) | |||
transfer contents from a cell in previous sheet if the sheet is a | New Users to Excel | |||
How can I transfer a required data from sheet 1 to sheet 2 automat | Excel Discussion (Misc queries) | |||
How to Automatically transfer specific Data from Sheet 1 to Sheet | Excel Worksheet Functions | |||
Transfer/Copy Sheet, Dynamically linked Sheet | Excel Discussion (Misc queries) |