There is a price report for many types products (copper). The report includes the name of products (Copper, Zinc, etc.) in one column, price in second column and it's corresponding date in the 3rd column.
I need to find in this report only Copper, then I need to take the prices for each date in a specific date range, and paste this price into another spreadsheet which also has dates, so when pasting the price, it should bee pasted into the correct row for that date.
I've managed to paste only one price, however it's not the correct date. I hope a screenshot will help understanding the task.
Dim elements As Range, element As Range, dates_pnl As Range, x As Range
Set elements = Workbooks("Metals_2019_11_21.csv").Worksheets("Metals_2019_11_21").Range("A2:A10")
Set wb1 = ThisWorkbook
Set ws1 = wb1.Worksheets("Prices")
Set dates_pnl = ws1.Range("A771:A779")
For Each element In elements
If element.Value = "Copper" Then
For Each x In dates_pnl
If element.Offset(0, 1) = x Then
element.Offset(0, 2).Copy
ws1.Range("B772").PasteSpecial Paste:=xlPasteValues
End If
Next x
End If
Next element
Your way of copying is not the most efficient one, but it does the work. It's a good starting point.
Dim elements As Range, element As Range, dates_pnl As Range, x As Range
Set elements = Workbooks("Metals_2019_11_21.csv").Worksheets("Metals_2019_11_21").Range("A2:A10")
Set wb1 = ThisWorkbook
Set ws1 = wb1.Worksheets("Prices")
Set dates_pnl = ws1.Range("A771:A779")
For Each element In elements
If element.Value = "Copper" Then
For Each x In dates_pnl
If element.Offset(0, 1) = x Then
x.Offset(0, 1).Value = element.Offset(0, 2).Value
End If
Next 'x
End If
Next 'element