![]() |
Finding Last Date Report
Hi,
I save WIP Reports in a Hist Folder every few days, So for example,my code will save today's report as "WIP 16-12-04", it should then open the last WIP report in the folder (e.g. WIP 13-12-04) and compare the 2 for changes, I need code which will find and open the last report and insert the workbook name in ******* below. Thanks for any help Sub desmond() 'Dim i, j ThisWorkbook.SaveAs "c:\Hist\WIP " & Format(Date, "dd-mm-yy") Worksheets.Add.Name = "Changes" ............................................ For i = 1 To 100 For j = 1 To 100 If Worksheets("Jobs").Cells(i, j) <Workbooks("*****"). Worksheets("Jobs").Cells(i, j) Then .................... |
Finding Last Date Report
Before you go too far, you may want to look at opening the workbooks manually
and using a procedure written by Myrna Larson and Bill Manville. You can find it at: http://www.cpearson.com/excel/whatsnew.htm look for compare.xla But if you want, I think that this does what you ask: Option Explicit Sub testme() Dim myFile As String Dim myPath As String Dim prevWkbk As Workbook Dim curWkbk As Workbook Dim fDate As Date Dim KeepThisFileName As String Dim KeepThisDate As Date Dim i As Long Dim j As Long 'change to point at the folder to check myPath = "c:\my documents\excel\test" If Right(myPath, 1) < "\" Then myPath = myPath & "\" End If myFile = Dir(myPath & "*.xls") If myFile = "" Then MsgBox "no files found" Exit Sub End If 'Set curWkbk = ActiveWorkbook '? 'or Set curWkbk = Workbooks("wip " & Format(Date, "dd-mm-yy") & ".xls") 'get the list of files KeepThisFileName = "" Do While myFile < "" If LCase(myFile) Like "wip ##-##-##.xls" Then fDate = DateSerial(2000 + Mid(myFile, 11, 2), _ Mid(myFile, 8, 2), _ Mid(myFile, 5, 2)) If fDate = Date Then 'skip today's file Else If KeepThisFileName = "" Then KeepThisFileName = myFile KeepThisDate = fDate End If If fDate KeepThisDate Then KeepThisFileName = myFile KeepThisDate = fDate End If End If End If myFile = Dir() Loop If KeepThisFileName = "" Then MsgBox "no file found" Exit Sub End If Set prevWkbk = Workbooks.Open(Filename:=myPath & KeepThisFileName) For i = 1 To 100 For j = 1 To 100 If curWkbk.Worksheets("Jobs").Cells(i, j) _ < prevWkbk.Worksheets("Jobs").Cells(i, j) Then 'do what you will Else 'do what you won't End If Next j Next i End Sub ========= If you're really industrious, you could combine both routines. teresa wrote: Hi, I save WIP Reports in a Hist Folder every few days, So for example,my code will save today's report as "WIP 16-12-04", it should then open the last WIP report in the folder (e.g. WIP 13-12-04) and compare the 2 for changes, I need code which will find and open the last report and insert the workbook name in ******* below. Thanks for any help Sub desmond() 'Dim i, j ThisWorkbook.SaveAs "c:\Hist\WIP " & Format(Date, "dd-mm-yy") Worksheets.Add.Name = "Changes" ........................................... For i = 1 To 100 For j = 1 To 100 If Worksheets("Jobs").Cells(i, j) <Workbooks("*****"). Worksheets("Jobs").Cells(i, j) Then .................... -- Dave Peterson |
All times are GMT +1. The time now is 01:18 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com