View Single Post
  #12   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Eric Eric is offline
external usenet poster
 
Posts: 1,670
Default HELP - Too long coding for Macro

Thank you very much for your suggestions
What if I would like to insert date only under column C, and to insert
time only under column D. Do you have any suggestions?
When I run a list of files, sometime, the process is stopped after opening
some file without closing it. There is no error message, but when I re-run
the same list again, then this error does not occur. I have no idea why
sometime it will stop in the middle of the process. Do you have any
suggestions on how to check this error?
Thank you very much for any suggestions
Eric


"Dave Peterson" wrote:

How about putting the time and date in column C

mycell.offset(0,1).value = "ok"
with mycell.offset(0,2)
.numberformat = "mm/dd/yyyy hh:mm:ss"
.value = now
end with



Eric wrote:

Thank you very much for your suggestions
It works now and is very nice to show "ok" on B column, but I would like to
add the date on C column and time on D column for updated record.

mycell.offset(0,1).value = "ok"

Do you have any suggestions?
Thank you very much for your suggestions
Eric

"Dave Peterson" wrote:

The code starts processing the data in A2--I figured you'd put headers in A1.

But you could change this:
Set myRng = .Range("a2", .Cells(.Rows.Count, "A").End(xlUp))
to:
Set myRng = .Range("a1", .Cells(.Rows.Count, "A").End(xlUp))

I'd add a couple of checks:

Option Explicit
Sub Temp2()

Dim myRng as Range
dim myCell as range
dim wkbk as workbook

with worksheets("sheet9999")
'still starting in row 2!
set myRng = .range("a2",.cells(.rows.count,"A").end(xlup))
end with

for each mycell in myrng.cells
set wkbk = nothing
on error resume next
set wkbk = Workbooks.Open(Filename:=mycell.value, UpdateLinks:=3)
on error goto 0

if wkbk is nothing then
mycell.offset(0,1).value = "Failed to open!"
else
wkbk.Close savechanges:=True
mycell.offset(0,1).value = "ok"
end if
next mycell

'better to include an extension
Workbooks("UpdateFiles.xls").Close savechanges:=True

End Sub

(Untested, uncompiled.)

Eric wrote:

There is the coding for macro

Under the spreadsheet, in cell A1, I insert the name
C:\WIN98\Desktop\Economic.xls

================================
Option Explicit
Sub Temp2()

Dim myRng As Range
Dim myCell As Range
Dim wkbk As Workbook

With Worksheets("Lists")
Set myRng = .Range("a2", .Cells(.Rows.Count, "A").End(xlUp))
End With

For Each myCell In myRng.Cells
Set wkbk = Workbooks.Open(Filename:=myCell.Value, UpdateLinks:=3)
wkbk.Close savechanges:=True
Next myCell

Workbooks("UpdateFiles").Close savechanges:=True

End Sub
================================

Do you have any suggestions?
Thank you very much for any suggestions
Eric

"Dave Peterson" wrote:

There's nothing in that code that closes the workbook that relies on the name or
path of the file.

If you're having trouble, then you may want to post the details of what happens.


Eric wrote:

Hi Dave Peterson:
Thank you very much for your suggestions
There is a minor problem on closing file.

The following coding is working, when the specific file is opened, there is
no need for the drive and directory for closing the file.

Workbooks.Open Filename:="E:\dir\File1.xls", UpdateLinks:=3
Workbooks("File1.xls").Close savechanges:=True

For the following code, it may contains the drive and directory, and cause
not able to close the file. Do you have any suggestions on how to fix the
code please?

for each mycell in myrng.cells
set wkbk = Workbooks.Open (Filename:=mycell.value, UpdateLinks:=3)
wkbk.Close savechanges:=True
next mycell

I look forward to your reply
Thank you very much for any suggestions
Eric

"Dave Peterson" wrote:

You could build an array of names in your code--but even better, you could put
your names in a worksheet.


Option Explicit
Sub Temp2()

Dim myRng as Range
dim myCell as range
dim wkbk as workbook

with worksheets("sheet9999")
set myRng = .range("a2",.cells(.rows.count,"A").end(xlup))
end with

for each mycell in myrng.cells
set wkbk = Workbooks.Open (Filename:=mycell.value, UpdateLinks:=3)
wkbk.Close savechanges:=True
next mycell

Workbooks("UpdateFiles").Close savechanges:=True

End Sub



Eric wrote:

Does anyone have any suggestions on how to solve the problem of having too
long coding for Macro? I don't want to split the coding into 2 macro
separately.
Does anyone have any suggestions?
Thanks in advance for any suggestions
Eric

Coding is shown as below:

Sub Temp()

Application.DisplayAlerts = False

Workbooks.Open Filename:="C:\File1.xls", UpdateLinks:=3
Workbooks("File1.xls").Close savechanges:=True

Workbooks.Open Filename:="C:\File2.xls", UpdateLinks:=3
Workbooks("File2.xls").Close savechanges:=True

Workbooks.Open Filename:="C:\File3.xls", UpdateLinks:=3
Workbooks("File3.xls").Close savechanges:=True

...

Workbooks.Open Filename:="C:\File1000.xls", UpdateLinks:=3
Workbooks("File1000.xls").Close savechanges:=True

Workbooks("UpdateFiles").Close savechanges:=True

End Sub

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson