Copy data matching date and retain information in a monhtly report

T

Tiger

I have 2 spreadsheets, dailydata and datamonth. I need a macro which looks up
the date in dailydata which is in a fixed location, and then finds the
matching date in datamonth across a row of monthly dates (e.g. 01 jul to 31
jul) and pastes values from dailydata below the matching date in datamonth.

dailydata
3-Jul-07
Start End time
1 7 6

Datamonth
Dates 2-Jul-07 3-Jul-07 4-Jul-07
Start Run 1
End Run 7
Run Time 6

Note that I need to retain the data, when I change the date it updates the
cells for that date and must keep the data for the previous day. Is there a
way to do
this? Note also need to retain data as detailed below.

Dailydata will have new values for each day. The update needs to read and
paste as a value only into datamonth, it cant copy the cell as the formula in
the cell will be a problem . Also there are some blank cells between some of
the info in dailydata so how do you handle this? e.g info cells A3-C3, then
F3, then H3-L3


My thought was to have a macro that found the matching date from dailydata
in monthdata, and tthen using a series of range copies to trasfer the data to
monhtdata. I have tried but unsure on how to code the if loop,

open to suggestions, can email spreadsheets if that helps, thanks

Tiger
 
J

Joel

Sub getdaily()

Const DailyFolder = "c:\temp"

Workbooks.Open (DailyFolder & "\DailyData.xls")

DailyDate = Range("A1")

ThisWorkbook.Activate
LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column
Set DateRange = Range(Cells(1, "B"), Cells(1, LastColumn))

For Each cell In DateRange

If cell = DailyDate Then
With Workbooks("DailyData.xls").ActiveSheet
cell.Offset(rowoffset:=1, columnoffset:=0) = _
.Range("A3")
cell.Offset(rowoffset:=2, columnoffset:=0) = _
.Range("B3")
cell.Offset(rowoffset:=3, columnoffset:=0) = _
.Range("C3")
End With
Exit For
End If
Next cell
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top