Jetzt geht`s
Danke dir!
Hier mein Ergebnis:
Spoiler anzeigen
;LaNUV Clean Version
[/autoit] [autoit][/autoit] [autoit];Including Skripts
#include <IE.au3>
#include <array.au3>
#include <MsgBoxConstants.au3>
#include <Excel Rewrite.au3>
#include <Constants.au3>
;Open URL and save as array
Global $sURL = "http://www.lanuv.nrw.de/luft/temes/0203/EVOG.htm#jetzt"
Global $sExcel = @ScriptDir & "\LaNUV.xlsx"
Global $oIE = _IECreate($sURL, 0, 0)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Fehler", "Funktion _IECreate beendete mit Fehlercode " & @error)
Global $oTable = _IETableGetCollection($oIE, 0)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Fehler", "Funktion _IETableGetCollection beendete mit Fehlercode " & @error)
Global $aInput = _IETableWriteToArray($oTable, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Fehler", "Funktion _IETableWriteToArray beendete mit Fehlercode " & @error)
_IEQuit($oIE)
;_ArrayDisplay($aInput)
;Datei abfragen und ggf. erstellen im Programmverzeichnis
Global $oExcel = _Excel_Open(), $oBook
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Fehler", "Funktion _Excel_Open beendete mit Fehlercode " & @error)
If Not FileExists($sExcel) Then
$oBook = _Excel_BookNew($oExcel, 1)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Fehler", "Funktion _Excel_BookNew beendete mit Fehlercode " & @error)
Global $aHeader[1][6] = [["Jahr", "Monat", "Tag", "Stunde", "WRi", "WGes"]]
_Excel_RangeWrite($oBook, 1, $aHeader, "A1")
_Excel_BookSaveAs($oBook, @ScriptDir & "\LaNUV.xlsx", $xlWorkbookDefault)
Else
$oBook = _Excel_BookOpen($oExcel, $sExcel)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Fehler", "Funktion _ExcelBookOpen beendete mit Fehlercode " & @error)
EndIf
Global $aOutput[UBound($aInput)][6], $iCount = 0
Global $aDatum = StringSplit($aInput[0][8], ".")
For $i = 5 To UBound($aInput) - 1 Step 2
If $i = 51 Then $i = 52 ; Leerzeile übergehen
$aOutput[$iCount][0] = $aDatum[3]
$aOutput[$iCount][1] = Int($aDatum[2])
$aOutput[$iCount][2] = Int($aDatum[1])
$aOutput[$iCount][3] = $aInput[$i][0]
$aOutput[$iCount][4] = $aInput[$i][6]
$aOutput[$iCount][5] = StringReplace($aInput[$i][7], ".", ",")
$iCount = $iCount + 1
Next
ReDim $aOutput[$iCount][UBound($aOutput, 2)]
;_ArrayDisplay($aOutput)
;Zellen formatieren
$oExcel.Range("D:D").NumberFormat = "@" ; Text
$oExcel.Range("A:C").NumberFormat = "0" ; Zahl
$oExcel.Range("E:E").NumberFormat = "0" ; Zahl
$oExcel.Range("F:F").NumberFormat = "0,0" ; Zahl
Global $iErsteZeile = $oBook.Activesheet.UsedRange.Rows.Count + 1
_Excel_RangeWrite($oBook, 1, $aOutput, "A" & $iErsteZeile)
;Excel speichern
_Excel_BookSave($oBook)
If @error <> 0 Then Return MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSave Example 1", "Error saving workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookSave Example 1", "Workbook has been successfully saved as '" & @TempDir & "\LaNUV.xlsx'.")
;Excel schließen
_Excel_Close($oExcel)
If @error <> 0 Then Return MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_Close Example 2", "Excel konnte nicht automatisch geschlossen werden." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Sleep(2000)
Local $aProcesses = ProcessList("EXCEL.EXE")
;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_Close Example 2", "Function ended successfully." & @CRLF & @CRLF & $aProcesses[0][0] & " Excel instance(s) still running.")