Hi
Your explanation is ambiguous. It could be interpreted in different ways.
So I will interpret it as I choose. It will be luck if it gives you what you want......
Looking for highlighted cells requires interaction to the spreadsheet, since no format information is held in Excel values, that is to say using the .Value Property for the complete range will only distinguish Values, Formulas, Dates and Empty cells
But some worksheet functions are efficient, for example Range.Find , SpecilaCells, Copy, Offsett.
The solution that I have chosen to do will involve an initial adjustment so that I can detect the highlighted cells in a different way. Rem 2 makes the cell values formulas: http://www.excelfox.com/forum/showth...ll=1#post12570
Here is the macro, also in macro.xlsm
Code:Sub PasteHighlightedCellsFromMatchedColumnRows() ' http://www.excelfox.com/forum/showthread.php/2425-Copy-and-paste-by-highlighted-colour Rem 1 Worksheets info Dim Ws1 As Worksheet, Ws2 As Worksheet Set Ws1 = Workbooks("1.xlsx").Worksheets.Item(1): Set Ws2 = Workbooks("2.xlsx").Worksheets.Item(1) Rem 2 .... initial adjustment so that I can detect the highlighted cells in a different way Dim Rng As Range For Each Rng In Ws1.UsedRange.Offset(0, 2).Resize(, Ws1.UsedRange.Columns.Count - 2) ' We are intersted in the range offset 2 columns to the left of size 2 columns less than the main used range If Rng.Interior.Color = 65535 Then Let Rng.Value = "=" & """" & Rng.Value & """" Else End If Next Rng Rem 3 match column A stock name of 1.xlsx with column B of 2.xlsx and if it matches then copy the yellow highlighted colured cell data in that row of 1.xlsx and paste it to column L OF 2.xlsx Dim Lr1 As Long: Let Lr1 = Ws1.UsedRange.Rows.Count For Each Rng In Ws1.Range("A2:A" & Lr1 & "") ' Ws1 column A Dim Lr2 As Long: Let Lr2 = Ws2.UsedRange.Rows.Count Dim SrchRng As Range: Set SrchRng = Ws2.Range("B2:B" & Lr2 & "") Dim RngMtch As Range Set RngMtch = SrchRng.Find(what:=Rng.Value, After:=Ws2.Range("B2"), LookAt:=xlWhole, searchorder:=xlNext, MatchCase:=True) ' If RngMtch Is Nothing Then Else ' a cell from column a 1.xlsx is matched to a cell from column B 2.xlsx ' copy the yellow highlighted colured cell data in that row of 1.xlsx Rng.Offset(0, 1).Resize(, Ws1.UsedRange.Columns.Count - 1).SpecialCells(xlCellTypeFormulas, xlNumbers + xlTextValues).Copy ' paste it to column L OF 2.xlsx Ws2.Range("L" & RngMtch.Row & "").PasteSpecial Paste:=xlPasteValues End If Next Rng ' Ws1 column A Rem 4 save and close both the file after doing the process Workbooks("1.xlsx").Close savechanges:=False Workbooks("2.xlsx").Close savechanges:=True End Sub
See also here: http://www.excelfox.com/forum/showth...ll=1#post12570
Alan
1.xlsx : https://app.box.com/s/dgufdfvw3lm3knkvwvp0xgiqpwarqf69
2.xlsx : https://app.box.com/s/51cykk4zd6ldan8puz70o3zyj0e17rwf
macro.xlsm : https://app.box.com/s/tbis0g4n6l6386df6xjwh4cirbtgphzl




Reply With Quote

Bookmarks