Fehlerabfrage einbauen

  • Hallo zusammen!

    soweit läuft mein Script. Ich würde aber gerne noch ne Fehlermeldung einbauen, und zwar, wenn man ohne vorher eine Datei/Dateien mit Öffnen ausgewählt zu haben, den Button Konvertieren drückt. Wenn man das macht, dann stürzt das Script ab. Ich hätte an dieser Stelle gerne eine Fehlermeldung und, dass das Script weiter läuft.

    Ich weiß nicht, wie ich da ansetzen muss.

    Vielleicht kann mir jemand einen Tipp geben.

    Vielen Dank!


    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>
    #include <Excel Rewrite.au3>
    #include <file.au3>
    #include <array.au3>
    #include <GetPathDetail.au3>
    #Region ### START Koda GUI section ###
    $exceldoku2pdf = GUICreate("exceldoku2pdf", 250, 328, 191, 124)
    $Convert = GUICtrlCreateButton("Konvertieren", 8, 184, 113, 49)
    $Exit = GUICtrlCreateButton("Beenden", 128, 184, 113, 49)
    $Oeffnen = GUICtrlCreateButton("Öffnen", 91, 92, 73, 49)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Exit
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $oeffnen
    oeffnen()

    [/autoit] [autoit][/autoit] [autoit]

    Case $Convert
    convert()

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func oeffnen()
    Global $code = FileOpenDialog("Wähle XLSX oder XLS Datei aus!",@StartupDir, "(*.xlsx;*.xls)",1 + 4)

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then MsgBox(0,"Fehler!", "Bitte wählen Sie zuerst eine .xls- oder .xlsx-Datei aus!")
    Global $aFiles = StringSplit($code, "|", 1)

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 2 To UBound($aFiles) -1
    $aFiles[$i] = $aFiles[1] & "" & $aFiles[$i]
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func convert()

    [/autoit] [autoit][/autoit] [autoit]

    If $aFiles[0] <= 1 Then
    For $i = 1 To $aFiles[0]

    [/autoit] [autoit][/autoit] [autoit]

    Global $oAppl = _Excel_Open()
    Global $oWorkbook = _Excel_BookOpen($oAppl, $aFiles[$i])
    Global $sOutput = $aFiles[$i]
    Global $sOut = _GetPathDetail($aFiles[$i])
    Global $fOut = $sOut[2] & "" & $sOut[4]

    [/autoit] [autoit][/autoit] [autoit]

    _Excel_Export($oAppl, $oWorkbook, $fOut)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(50)
    ProcessClose("excel.exe")
    Local $PID = ProcessExists("excel.exe")
    If $PID Then ProcessClose($PID)
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 2 To $aFiles[0]

    [/autoit] [autoit][/autoit] [autoit]

    Global $oAppl = _Excel_Open()
    Global $oWorkbook = _Excel_BookOpen($oAppl, $aFiles[$i])
    Global $sOutput = $aFiles[$i]
    Global $sOut = _GetPathDetail($aFiles[$i])
    Global $fOut = $sOut[2] & "" & $sOut[4]

    [/autoit] [autoit][/autoit] [autoit]

    _Excel_Export($oAppl, $oWorkbook, $fOut)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(50)
    ProcessClose("excel.exe")
    Local $PID = ProcessExists("excel.exe")
    If $PID Then ProcessClose($PID)
    Next
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Sirius (25. Februar 2014 um 15:21)

  • Schöner wäre es, den Button Konvertieren erst freizuschalten, wenn mind. eine Datei ausgewählt ist.

    Den Button nach dem Anlegen also erstmal inaktiv schalten:

    [autoit]


    $Convert = GUICtrlCreateButton("Konvertieren", 8, 184, 113, 49)
    GUICtrlSetState(-1, $GUI_DISABLE)

    [/autoit]

    Und später aktiv schalten:

    [autoit]


    GUICtrlSetState($Convert , $GUI_ENABLE)

    [/autoit]
  • Hi zemkedesign!

    Vielen Dank für den Tipp! Habe es jetzt so gelöst:

    Spoiler anzeigen
    [autoit]


    Func oeffnen()
    Global $code = FileOpenDialog("Wähle XLSX oder XLS Datei aus!",@StartupDir, "(*.xlsx;*.xls)",1 + 4)
    If Not @error Then GUICtrlSetState($Convert , $GUI_ENABLE)
    Global $aFiles = StringSplit($code, "|", 1)

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 2 To UBound($aFiles) -1
    $aFiles[$i] = $aFiles[1] & "" & $aFiles[$i]

    [/autoit] [autoit][/autoit] [autoit]

    Next
    EndFunc

    [/autoit]