ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Opening notepad file then sending to back (https://www.excelbanter.com/excel-programming/395546-opening-notepad-file-then-sending-back.html)

DJ MC

Opening notepad file then sending to back
 
I have a piece of code which opens a certain notepad file, goes to a
line of the file, reads the date which is on that line then brings up
a message box if the date is in the past, the only problem with this i
have is when its doing the check, the notepad is above excel, so if
the message box tries to display, notepad is in the way and all excel
does is flash. i need to somehow send the notepad to the background
behind excel but still be able to read from it. any help?
heres my code:

Application.ScreenUpdating = False
Shell "Notepad.exe " & OpenFile, vbNormalFocus

Set oFSO = CreateObject("Scripting.FileSystemObject")
lRow = 1
If oFSO.FileExists(OpenFile) Then
Set GFF_File = oFSO.OpenTextFile(OpenFile)

strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine

DateCheck1st = Mid(strLine, 11, 8)
DateCheck2nd = Mid(DateCheck1st, 7, 2)
DateCheck3rd = Mid(DateCheck1st, 5, 2)
DateCheck4th = Mid(DateCheck1st, 1, 4)

DateCheck = DateCheck2nd & "/" & DateCheck3rd & "/" & DateCheck4th

If DateCheck Date Then
YesNoQuestion = "Date of .GFF file is " & DateCheck & " are you
sure you want to process this file?"
answer = MsgBox(YesNoQuestion, vbQuestion + vbYesNo)
End If
If answer = vbNo Then
Reset
Exit Sub
End If


Steve Yandl

Opening notepad file then sending to back
 
Unless you need notepad open for some other reason besides extracting line 7
as a text string, you don't need to use it.

If OpenFile is the full path and file name of the text file you're checking,
try something like:

____________________________________

Const ForReading = 1

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTxtFile = oFSO.OpenTextFile(OpenFile, ForReading)

For x = 1 To 6
oTxtFile.ReadLine
Next

strLine = oTxtFile.ReadLine

oTxtFile.Close
_____________________________________

Now, strLine is the text from line 7 and you can check it for the date value
and you didn't need Notepad to be launched at all.


Steve



"DJ MC" wrote in message
oups.com...
I have a piece of code which opens a certain notepad file, goes to a
line of the file, reads the date which is on that line then brings up
a message box if the date is in the past, the only problem with this i
have is when its doing the check, the notepad is above excel, so if
the message box tries to display, notepad is in the way and all excel
does is flash. i need to somehow send the notepad to the background
behind excel but still be able to read from it. any help?
heres my code:

Application.ScreenUpdating = False
Shell "Notepad.exe " & OpenFile, vbNormalFocus

Set oFSO = CreateObject("Scripting.FileSystemObject")
lRow = 1
If oFSO.FileExists(OpenFile) Then
Set GFF_File = oFSO.OpenTextFile(OpenFile)

strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine

DateCheck1st = Mid(strLine, 11, 8)
DateCheck2nd = Mid(DateCheck1st, 7, 2)
DateCheck3rd = Mid(DateCheck1st, 5, 2)
DateCheck4th = Mid(DateCheck1st, 1, 4)

DateCheck = DateCheck2nd & "/" & DateCheck3rd & "/" & DateCheck4th

If DateCheck Date Then
YesNoQuestion = "Date of .GFF file is " & DateCheck & " are you
sure you want to process this file?"
answer = MsgBox(YesNoQuestion, vbQuestion + vbYesNo)
End If
If answer = vbNo Then
Reset
Exit Sub
End If




Dave Peterson

Opening notepad file then sending to back
 
Is there a reason you even use/show notepad? The real work isn't done in
Notepad. It's done through your FSO code.

DJ MC wrote:

I have a piece of code which opens a certain notepad file, goes to a
line of the file, reads the date which is on that line then brings up
a message box if the date is in the past, the only problem with this i
have is when its doing the check, the notepad is above excel, so if
the message box tries to display, notepad is in the way and all excel
does is flash. i need to somehow send the notepad to the background
behind excel but still be able to read from it. any help?
heres my code:

Application.ScreenUpdating = False
Shell "Notepad.exe " & OpenFile, vbNormalFocus

Set oFSO = CreateObject("Scripting.FileSystemObject")
lRow = 1
If oFSO.FileExists(OpenFile) Then
Set GFF_File = oFSO.OpenTextFile(OpenFile)

strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine

DateCheck1st = Mid(strLine, 11, 8)
DateCheck2nd = Mid(DateCheck1st, 7, 2)
DateCheck3rd = Mid(DateCheck1st, 5, 2)
DateCheck4th = Mid(DateCheck1st, 1, 4)

DateCheck = DateCheck2nd & "/" & DateCheck3rd & "/" & DateCheck4th

If DateCheck Date Then
YesNoQuestion = "Date of .GFF file is " & DateCheck & " are you
sure you want to process this file?"
answer = MsgBox(YesNoQuestion, vbQuestion + vbYesNo)
End If
If answer = vbNo Then
Reset
Exit Sub
End If


--

Dave Peterson

Steve Yandl

Opening notepad file then sending to back
 
Sorry, I just noticed that I failed to include the line to increment the
counter,
x = x + 1
that needs to be inside the For....Next loop

Steve



"Steve Yandl" wrote in message
. ..
Unless you need notepad open for some other reason besides extracting line
7 as a text string, you don't need to use it.

If OpenFile is the full path and file name of the text file you're
checking, try something like:

____________________________________

Const ForReading = 1

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTxtFile = oFSO.OpenTextFile(OpenFile, ForReading)

For x = 1 To 6
oTxtFile.ReadLine
Next

strLine = oTxtFile.ReadLine

oTxtFile.Close
_____________________________________

Now, strLine is the text from line 7 and you can check it for the date
value and you didn't need Notepad to be launched at all.


Steve



"DJ MC" wrote in message
oups.com...
I have a piece of code which opens a certain notepad file, goes to a
line of the file, reads the date which is on that line then brings up
a message box if the date is in the past, the only problem with this i
have is when its doing the check, the notepad is above excel, so if
the message box tries to display, notepad is in the way and all excel
does is flash. i need to somehow send the notepad to the background
behind excel but still be able to read from it. any help?
heres my code:

Application.ScreenUpdating = False
Shell "Notepad.exe " & OpenFile, vbNormalFocus

Set oFSO = CreateObject("Scripting.FileSystemObject")
lRow = 1
If oFSO.FileExists(OpenFile) Then
Set GFF_File = oFSO.OpenTextFile(OpenFile)

strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine
strLine = GFF_File.ReadLine

DateCheck1st = Mid(strLine, 11, 8)
DateCheck2nd = Mid(DateCheck1st, 7, 2)
DateCheck3rd = Mid(DateCheck1st, 5, 2)
DateCheck4th = Mid(DateCheck1st, 1, 4)

DateCheck = DateCheck2nd & "/" & DateCheck3rd & "/" & DateCheck4th

If DateCheck Date Then
YesNoQuestion = "Date of .GFF file is " & DateCheck & " are you
sure you want to process this file?"
answer = MsgBox(YesNoQuestion, vbQuestion + vbYesNo)
End If
If answer = vbNo Then
Reset
Exit Sub
End If







All times are GMT +1. The time now is 03:32 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com