probleem bij annuleren

Status
Niet open voor verdere reacties.

fpr

Gebruiker
Lid geworden
29 nov 2011
Berichten
6
Hallo ik heb onderstaand script voor het uitvoeren van een tekstbestand in Excel.
Bij het drukken op annuleren krijg ik het niet voor elkaar dat ik gewoon terug ga naar Excel. Ik krijg telkens de fout: Methode OpenText van object Workbooks is mislukt.
Nu denk ik dat de macro gewoon doorloopt ondanks dat ik op annuleren druk. Hoe kan dit?

Sub Ask_for_File()
Dim sFile As String

'Vraag naar txt file
sFile = GetFile("Change eWON file lay-out for DASYLab")

'OK - er is een txt bestand
Debug.Print sFile

If sFile = "" Then
Quit.Application
End If

'Roep de macro import code aan met het opgevraagde txt bestand
Call Create_Workbook_with_File(sFile)

End Sub

'Presenteer user met GetOpenFileName dialoog
'Geeft slechts één enkele filename weer!
Function GetFile(sTitle As String) As String
Dim sFilter As String
Dim bMultiSelect As Boolean

'Sample filter
'sFilter = "Txt files"
sFilter = "Txt Files (*.txt), *.txt"
bMultiSelect = False
GetFile = Application.GetOpenFilename(FileFilter:=sFilter, _
Title:=sTitle, MultiSelect:=bMultiSelect)

End Function


Sub Create_Workbook_with_File(sFile As String)

'Maak gegevens geschikt voor verwerking

Workbooks.OpenText Filename:= _
sFile, Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 9), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1)), DecimalSeparator:=".", ThousandsSeparator _
:="'", TrailingMinusNumbers:=True
Columns("A:A").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Range("A1").Select

ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close

End Sub
 
je getfile geeft waarschijnlijk geen "" terug. Annuleren geeft namelijk "false", niet "".

Overigens neem ik aan dal je application.quit bedoelt, niet quit.application
 
Ook bij False EN "False" doet die het niet....
Ik bedoelde inderdaad application.quit
 
Kun je bovenstaande code nog opmaken met de CODE knop? Dat maakt hem een stuk makkelijker leesbaar.
 
Code:
Sub Ask_for_File()
Dim sFile As String

'Vraag naar txt file
sFile = GetFile("Change eWON file lay-out for DASYLab")

'OK - er is een txt bestand
Debug.Print sFile

If sFile = "" Then
Quit.Application
End If

'Roep de macro import code aan met het opgevraagde txt bestand
Call Create_Workbook_with_File(sFile)

End Sub

'Presenteer user met GetOpenFileName dialoog
'Geeft slechts één enkele filename weer!
Function GetFile(sTitle As String) As String
Dim sFilter As String
Dim bMultiSelect As Boolean

'Sample filter
'sFilter = "Txt files"
sFilter = "Txt Files (*.txt), *.txt"
bMultiSelect = False
GetFile = Application.GetOpenFilename(FileFilter:=sFilter, _
Title:=sTitle, MultiSelect:=bMultiSelect)

End Function


Sub Create_Workbook_with_File(sFile As String)

'Maak gegevens geschikt voor verwerking

Workbooks.OpenText Filename:= _
sFile, Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 9), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1)), DecimalSeparator:=".", ThousandsSeparator _
:="'", TrailingMinusNumbers:=True
Columns("A:A").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Range("A1").Select

ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close

End Sub
 
Zo dus:

Code:
If GetFile("Change eWON file lay-out for DASYLab") = False Then
    Exit Sub
Else
    Call Create_Workbook_with_File(sFile)
End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan