File Generation stops until the timer is over...
 
Is this application generating the file? or is it being created from another 
process? 
 
The code is a little cumbersome (to me).
 
Here's what I observe:
 
-This code is contained in a workbook (name not specified)
 
-Windows.Application.Workbooks(WorkBookName).Activate is used to SWITCH to a 
different Excel instance of a workbook.  Which may or not be already open.
If it is not open, wb4 is not set.
If it IS open, then it is saved as "C:\Temp2\RN Data.xlsx"
But nothing in this code OPENs the .csv file.
 
And it will keep trying to switch to the other window until some other event 
opens the workbook.
 
the problem is that it keeps trying to switch to it and Excel is so fast that 
it will be trying several times EACH SECOND until file is found to be open.
After some number of CPU cycles, Windows decides that Excel should be set as a 
"background" process so that you can go back to doing productive work while it 
continues.

------------------------
IF what your'e trying to do is open the CSV file and save it as a .xlsx file,
try something like:

Option Explicit
Sub Test()

Dim InitialName As String
Dim fileSaveName As Object
'-----------------------------
Dim WorkBookName As String
Dim wb4 As Workbook
Dim i As Integer
'-----------------------------
On Error Resume Next
InitialName = "C:\temp2\RN Data.xlsx"
WorkBookName = "C:\temp2\RNsOutstanding[1].csv"
If Dir(InitialName) <> "" Then
    Kill InitialName
End If
For i = 1 To 20000
        Set wb4 = Workbooks.Open(WorkBookName)
        If Not wb4 Is Nothing Then
           wb4.SaveAs Filename:=InitialName, FileFormat:= _
            xlOpenXMLWorkbook, CreateBackup:=False
            Exit For
        End If
        Application.StatusBar = "Iteration: " & i
        Application.Wait Now() + TimeValue("00:00:05")
Next i
Application.StatusBar = False
If (wb4 Is Nothing) Then
    MsgBox "Failed to open File"
    Exit Sub
End If
MsgBox "Complete"
End Sub

Paul
-----------------------------------------
“Do all the good you can,
By all the means you can,
In all the ways you can,
In all the places you can,
At all the times you can,
To all the people you can,
As long as ever you can.” - John Wesley
-----------------------------------------

 From: Sukanta Datta <datta.sukant...@gmail.com>
>To: excel-macros@googlegroups.com 
>Cc: schreiner_p...@att.net 
>Sent: Thursday, June 12, 2014 11:18 AM
>Subject: Re: $$Excel-Macros$$ Re: How to pause the Excel VBA macro at certain 
>point and then start again
>  
>
>
>I did not mean to say Application.Wait does not work. It works but it does not 
>work for my code at that point because I have noticed that file generation 
>stops until the timer is over. The problem I am having that when I run without 
>the break mode the line where I assign wb4 never set and it goes in some kind 
>of infinitive loop. I tried to find out why and what I found is that after 
>couple of looping on this line "Set wb4 = Workbooks("RNsOutstanding[1]. csv")" 
>it throws out a Subscript out of Range error and it never sets wb4 again. When 
>I run in break mode it works.
> 
>
>
>On Thursday, June 12, 2014 6:57:00 AM UTC-7, Paul Schreiner wrote: 
>Did you TRY what I described? or even Ravinder's suggestion of Browser.busy or 
>Browser.ReadyState? 
>>
>>There are two things: 
>>You SAID that Application.Wait does not work. 
>>When used properly, Application.Wait DOES work, it just might not help in 
>>your case. 
>>
>>The second thing is the infinite loop. 
>>That is completely fixable. 
>>A loop can be broken out of. 
>>The problem is that sometimes, the CPU is taken over with so many commands in 
>>the "stack", it is many cycles before the break/interrupt reaches the top of 
>>the stack! 
>>That's why we put the wait command in there so that it doesn't keep putting 
>>commands into the stack. 
>>
>>In my example, I use the loop to check to see if the file exists and if the 
>>file size is "stable". 
>>
>>That is, as the file is being downloaded, it will continue to get larger, 
>>until the file size does not 
>>change after 5 seconds (perhaps longer depending on download speed) 
>>
>>Once the file exists and seems to be completely downloaded, THEN try to open 
>>it. 
>>
>> Trying to open it in every loop and checking for success isn't necessarily 
>>causing an "infinite loop" as much as overloading the CPU with unsuccessful 
>>attempts to open a file, which is just LOADED with CPU activity!  
>>
>>Paul 
>>------------------------------ -----------
>>“Do all the good you can,
>>By all the means you can,
>>In all the ways you can,
>>In all the places you can,
>>At all the times you can,
>>To all the people you can,
>>As long as ever you can.” - John Wesley
>>------------------------------ ----------- 
>>
>>
>>From: Sukanta Datta <datta.s...@gmail.com>
>>>To: excel-...@googlegroups.com 
>>>Sent: Wednesday, June 11, 2014 6:04 PM
>>>Subject: $$Excel-Macros$$ Re: How to pause the Excel VBA macro at certain 
>>>point and then start again
>>> 
>>>
>>>
>>>Thank you very much for the reply but Application.Wait does not work. 
>>>
>>>Paul, 
>>>
>>>I try to implement your method but the problem is the file is not created 
>>>yet. Can you tell me how to save the file I am creating to save 
>>>automatically in a directory? Whenevr I try to activate the new file it does 
>>>not activate and it goes for indefinite loop. 
>>>Here is my code: 
>>>
>>>Dim InitialName As String
>>>Dim fileSaveName As Object
>>>On Error Resume Next
>>>InitialName = "C:\temp2\RN Data.xlsx"
>>>WorkBookName = "RNsOutstanding[1].csv"
>>>If Dir(InitialName) <> "" Then
>>>    Kill InitialName
>>>End If 
>>>WorkbookOpen = False
>>>While WorkbookOpen <> True
>>>    If Dir(InitialName) <> "" Then
>>>      If Not wb4 Is Nothing Then
>>>        WorkbookOpen = True 
>>>      End If
>>>    Else
>>>        Windows.Application.Workbooks( WorkBookName).Activate
>>>        Set wb4 = Workbooks("RNsOutstanding[1]. csv")
>>>        
>>>        If Not wb4 Is Nothing Then
>>>           wb4.SaveAs FileName:="C:\Temp2\RN Data.xlsx", FileFormat:= _
>>>            xlOpenXMLWorkbook, CreateBackup:=False
>>>        End If
>>>    End If
>>>    If i > 20000 Then
>>>        WorkbookOpen = True
>>>    Else
>>>        i = i + 1
>>>'        Application.Wait Now + TimeValue("00:00:01") 
>>>    End If
>>>Wend
>>> 
>>>
>>>On Tuesday, June 10, 2014 7:09:22 AM UTC-7, Sukanta Datta wrote: 
>>>I am trying to automate metrics collection. My macro is downloading data 
>>>from an Internet Application. Then I use that data to generate metrics. When 
>>>I run the macro in break mode (line by line execution) it works fine but 
>>>when I take out the break it does not work. I think the problem is that 
>>>Internet Application takes few minutes to generate the file and my macro 
>>>runs beyond that point so it does not Set the workbooks properly. I tried to 
>>>slow it down with Application.Wait command but then the Internet File 
>>>generation wait until my timeer is over. I tried to loop it until I find the 
>>>file in in the Internet download Teamporary director but the application 
>>>hangup and I have to kill the process to start over. Can somebody tell me 
>>>how can I stop executing my macro in a certain point but that will not stop 
>>>generating the Internet Application down load file.-- 
>>>Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
>>>=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
>>>https://www.facebook.com/discussexcel
>>> 
>>>FORUM RULES
>>> 
>>>1) Use concise, accurate thread titles. Poor thread titles, like Please 
>>>Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will 
>>>not get quick attention or may not be answered.
>>>2) Don't post a question in the thread of another member.
>>>3) Don't post questions regarding breaking or bypassing any security measure.
>>>4) Acknowledge the responses you receive, good or bad.
>>>5) Jobs posting is not allowed.
>>>6) Sharing copyrighted material and their links is not allowed.
>>> 
>>>NOTE : Don't ever post confidential data in a workbook. Forum owners and 
>>>members are not responsible for any loss.
>>>--- 
>>>You received this message because you are subscribed to the Google Groups 
>>>"MS EXCEL AND VBA MACROS" group.
>>>To unsubscribe from this group and stop receiving emails from it, send an 
>>>email to excel-macros...@ googlegroups.com.
>>>To post to this group, send email to excel-...@googlegroups.com.
>>>
>>>Visit this group at http://groups.google.com/group/excel-macros.
>>>For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>>
>>>
>-- 
>Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
>=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
>https://www.facebook.com/discussexcel
> 
>FORUM RULES
> 
>1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
>Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
>quick attention or may not be answered.
>2) Don't post a question in the thread of another member.
>3) Don't post questions regarding breaking or bypassing any security measure.
>4) Acknowledge the responses you receive, good or bad.
>5) Jobs posting is not allowed.
>6) Sharing copyrighted material and their links is not allowed.
> 
>NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
>members are not responsible for any loss.
>--- 
>You received this message because you are subscribed to the Google Groups "MS 
>EXCEL AND VBA MACROS" group.
>To unsubscribe from this group and stop receiving emails from it, send an 
>email to excel-macros+unsubscr...@googlegroups.com.
>To post to this group, send email to excel-macros@googlegroups.com.
>Visit this group at http://groups.google.com/group/excel-macros.
>For more options, visit https://groups.google.com/d/optout.
>
>
>    

-- 
Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
https://www.facebook.com/discussexcel

FORUM RULES

1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
quick attention or may not be answered.
2) Don't post a question in the thread of another member.
3) Don't post questions regarding breaking or bypassing any security measure.
4) Acknowledge the responses you receive, good or bad.
5) Jobs posting is not allowed.
6) Sharing copyrighted material and their links is not allowed.

NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
members are not responsible for any loss.
--- 
You received this message because you are subscribed to the Google Groups "MS 
EXCEL AND VBA MACROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to excel-macros+unsubscr...@googlegroups.com.
To post to this group, send email to excel-macros@googlegroups.com.
Visit this group at http://groups.google.com/group/excel-macros.
For more options, visit https://groups.google.com/d/optout.

Reply via email to