Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Compare values in 2 worksheets


Hi everyone!
We need to match records between 2 worksheets using column "K" in both
sheets. It contains a unique item number for each record (like a
database)

Using a loop, if the active cell in column D of worksheet1 is blank,
then the value in column D in worksheet2 is printed to the cell in
worksheet1 where the cell in column K are the same in both worksheets.

Dim i As Long

For i = 7 To lastRow
If Cells(i, "D").Value = "" And Cells(i, "K").Value = 'Value in
column "K" of worksheet2 Then
Cells(i, "D").Value = 'Value from the cell in column "D" of
worksheet2
End If
Next i

Thanks in advance everyone!


--
mthomas
------------------------------------------------------------------------
mthomas's Profile: http://www.excelforum.com/member.php...o&userid=25649
View this thread: http://www.excelforum.com/showthread...hreadid=467564

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 55
Default Compare values in 2 worksheets

I have assumed the data on Sheet2 also starts in row 7. The loop could
work like this:

Sub withloop()

Dim lastRow As Long
Dim eRow As Long
Dim lRange As Range
Dim fRange As Range
Dim cRange As Range
Dim cell As Range

lastRow = Sheets("Sheet1").Cells(Rows.Count, 11).End(xlUp).Row
eRow = Sheets("Sheet2").Cells(Rows.Count, 11).End(xlUp).Row
With Sheets("Sheet1")
Set cRange = .Range(.Cells(7, 4), .Cells(lastRow, 4))
End With
With Sheets("Sheet2")
Set lRange = .Range(.Cells(7, 11), .Cells(eRow, 11))
End With

For Each cell In cRange
If cell.Value = "" Then
Set fRange = lRange.Find(cell.Offset(0, 7).Value)
If Not fRange Is Nothing Then
cell.Value = fRange.Offset(0, -7).Value
Set fRange = Nothing
End If
End If
Next cell

End Sub

Or you could do it without a loop (mostly for my own entertainment):

Sub NoLoop()
Dim lastRow As Long
Dim eRow As Long
lastRow = Sheets("Sheet1").Cells(Rows.Count, 11).End(xlUp).Row
eRow = Sheets("Sheet2").Cells(Rows.Count, 11).End(xlUp).Row
With Sheets("Sheet1").Range(Cells(7, 4), Cells(lastRow, 4)). _
SpecialCells(xlCellTypeBlanks)
.FormulaR1C1 = _
"=IF(ISNA(INDEX(Sheet2!R7C4:R" & eRow & "C4,MATCH(RC[7]," _
& "Sheet2!R7C11:R" & eRow & "C11,0),1)),"""",INDEX" _
& "(Sheet2!R7C4:R" & eRow & "C4,MATCH(RC[7],Sheet2!" _
& "R7C11:R" & eRow & "C11,0),1))"
End With
End Sub

Note this method will not give the desired results if you have more than
8100 odd non contiguous ranges with blank cells in column D on sheet1.

Or finally if you didn't want to keep the data you already have in
column D, enter this formula in D7 and copy down:

=IF(ISNA(INDEX(Sheet2!$D$7:$D$100,MATCH(K7,Sheet2! $K$7:$K$100,0),1)),"",INDEX(Sheet2!$D$7:$D$100,MAT CH(K7,Sheet2!$K$7:$K$100,0),1))

Hope this helps
Rowan

mthomas wrote:
Hi everyone!
We need to match records between 2 worksheets using column "K" in both
sheets. It contains a unique item number for each record (like a
database)

Using a loop, if the active cell in column D of worksheet1 is blank,
then the value in column D in worksheet2 is printed to the cell in
worksheet1 where the cell in column K are the same in both worksheets.

Dim i As Long

For i = 7 To lastRow
If Cells(i, "D").Value = "" And Cells(i, "K").Value = 'Value in
column "K" of worksheet2 Then
Cells(i, "D").Value = 'Value from the cell in column "D" of
worksheet2
End If
Next i

Thanks in advance everyone!


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Compare values in 2 worksheets


Hey Rowan,

Just a quick note to say thanks! I chose to use the loop and it work
great

--
mthoma
-----------------------------------------------------------------------
mthomas's Profile: http://www.excelforum.com/member.php...fo&userid=2564
View this thread: http://www.excelforum.com/showthread.php?threadid=46756

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to compare/sort values in two columns of two worksheets? pemt Excel Discussion (Misc queries) 4 January 21st 09 10:22 PM
Excel VBA Macro to compare 2 worksheets for same values [email protected] Excel Worksheet Functions 0 August 23rd 06 04:35 PM
Code to compare cell values from different worksheets Ed P[_2_] Excel Programming 1 February 18th 05 03:26 PM
How do i compare values from two sheet and copy & paste if values match? rozb Excel Programming 0 March 5th 04 12:06 AM


All times are GMT +1. The time now is 04:23 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"