1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. MiBert

Beiträge von MiBert

  • Programm (Excel) beenden mit Aufgabenplaner

    • MiBert
    • 28. April 2021 um 16:47

    Es kommt keine Fehlermeldung. Auch kein Errorcode.

    Was mich "wahnsinnig" macht ist, dass alles funktioniert wenn ich das Script (und auch die exe) manuell starten lasse. Sobald die Exe allerdings über den Aufgabenplaner gestartet wird, werden die Excel-Dateien nicht geschlossen. Auch _Excel_BookClose ändert nichts daran.

    Die Vorletzte Codezeile speichert die, durch das Script, neu erstellte Excel-Datei das erste Mal ab. Das funktioniert auch, da die Datei jedesmal auf dem Sharepoint liegt. Aber danach sollten die offenen Excel-Dateien (es sind drei Stück) geschlossen werden. Das passiert nicht. Weder durch _Excel_Close noch wenn ich mit _Excel_BookClose die drei Dateien einzeln schließen möchte.

  • Programm (Excel) beenden mit Aufgabenplaner

    • MiBert
    • 28. April 2021 um 11:07

    Alles klar. Hier der Code.

    Ja... ich weiß... mit dem kommentieren habe ich es nicht so und ziemlich sicher kann man das ganze auch (deutlich?) effizienter schreiben ;) Aber es tut was es soll (bis auf das o.g. Problem)


    C
    #include <Excel.au3>
    #include <MsgBoxConstants.au3>
    #include <Array.au3>
    
    
    ;Open Export
    
    
    Local $oExcel = _Excel_Open()
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    
    
    ; Musterrücklieferung öffnen
    
    
    Local $sWorkbook = @UserProfileDir & "\Reporting\Rücklieferdatei_Muster.xlsx"
    Local $oWorkbook = _Excel_BookOpen($oExcel, $sWorkbook)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Error opening '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ; MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Workbook '" & $sWorkbook & "' has been opened successfully." & @CRLF & @CRLF & "Creation Date: " & $oWorkbook.BuiltinDocumentProperties("Creation Date").Value)
    
    
    ; Exportdatei erstellen und erste Zeile der Rücklieferung kopieren
    
    
    Local $oWorkbook2 = _Excel_BookNew($oExcel, 1)
    Local $oRange = $oWorkBook.Activesheet.Range("A1").EntireRow
    _Excel_RangeCopyPaste($oWorkbook2.Worksheets(1), $oRange, "A1", Default, $xlPasteAllUsingSourceTheme)
    $sWorkbook2 = @UserProfileDir & "\Reporting\Export_" & @YEAR & @MON & @MDAY - 1
    Local $oRange2 = $oWorkBook2.Activesheet.UsedRange
    
    
    ; Musterrücklieferung schließen
    _Excel_BookClose($oWorkbook)
    
    
    ;Letzten Export öffnen
    
    
    Local $sWorkbook = @UserProfileDir & "\Reporting\Kampagnen\Import_" & @YEAR & @MON & @MDAY - 1 & ".CSV"
    Local $oWorkbook = _Excel_BookOpen($oExcel, $sWorkbook)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Error opening '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ; MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Workbook '" & $sWorkbook & "' has been opened successfully." & @CRLF & @CRLF & "Creation Date: " & $oWorkbook.BuiltinDocumentProperties("Creation Date").Value)
    
    
    $oRange2 = $oWorkBook.Activesheet.Range("A1").EntireRow
    Local $aResult2 = _Excel_RangeFind($oWorkbook, "Phone", $oRange2, Default)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Error searching the range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Find all occurrences of value '37000' (partial match)." & @CRLF & "Data successfully searched.")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    For $i = 0 To UBound($aResult2,  $UBOUND_ROWS) - 1
    
    
    If UBound($aResult2, 1) > 0 Then
    Local $spalte = StringSplit($aResult2[$i][2],"$")
    $oRange = $oWorkBook.Activesheet.Range($spalte[2] & "1").EntireColumn
    $oRange.NumberFormat = "0"
    EndIf
    Next
    
    
    
    
    ; Nur finale Datensätze kopieren
    _Excel_FilterSet($oWorkbook, Default, Default, 135, "*argued*",2,"unreachable")
    Local $oRange = $oWorkbook.ActiveSheet.AutoFilter.Range.Rows.SpecialCells($xlCellTypeVisible)
    
    
    Local $oWorkbook3 = _Excel_BookNew($oExcel, 1)
    _Excel_RangeCopyPaste($oWorkbook3.Worksheets(1), $oRange, "A1", Default, $xlPasteAllUsingSourceTheme)
    
    
    Local $zeilen = $oWorkBook3.ActiveSheet.UsedRange.Rows.Count
    
    
    If $zeilen < 2 then
    _Excel_Close($oExcel, False, True)
    ConsoleWrite("Keine Daten vorhanden")
    Exit
    EndIf
    
    
    
    
    ; Dialer-Export schließen
    _Excel_BookClose($oWorkbook)
    
    
    
    
    $aResult = _Excel_RangeRead($oWorkbook2, Default, $oWorkbook2.ActiveSheet.Usedrange.Rows("1:1"), 1)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example 3", "Error reading from workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example 3", "Data successfully read." & @CRLF & "Please click 'OK' to display all formulas in column A.")
    ;_ArrayDisplay($aResult, "Excel UDF: _Excel_RangeRead Example 3 - Formulas in column A")
    
    
    Local $search = $aResult[0][0]
    
    
    For $i = 0 To UBound($aResult,  $UBOUND_COLUMNS) - 1
    
    
    $search = $aResult[0][$i]
    ; ConsoleWrite($search & @LF)
    
    
    Local $aResult2 = _Excel_RangeFind($oWorkbook3, $search, Default, Default, $xlWhole)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Error searching the range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Find all occurrences of value '37000' (partial match)." & @CRLF & "Data successfully searched.")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    Local $aResult3 = _Excel_RangeFind($oWorkbook2, $search, Default, Default, $xlWhole)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Error searching the range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    
    
    
    
    If UBound($aResult2, 1) > 0 Then
    Local $spaltequelle = StringSplit($aResult2[0][2],"$")
    Local $spalteziel = StringSplit($aResult3[0][2],"$")
    ;ConsoleWrite("Die " & $i & ".te Variable " & $search & " ist in " & StringMid($aResult2[0][2],2,1) & @LF)
    ConsoleWrite("Die " & $i & ".te Variable " & $search & " ist in " & $spaltequelle[2] & @LF)
    $oRange = $oWorkBook3.Activesheet.Range($spaltequelle[2] & "1").EntireColumn
    ;Local $spalnr = "1:" & $i
    _Excel_RangeCopyPaste($oWorkbook2.Worksheets(1), $oRange, $spalteziel[2] & "1", Default, Default)
    
    
    EndIf
    
    
    
    
    Next
    
    
    
    
    ;Gesprächspartner ermitteln
    
    
    ;Spalten der GP-Nummern ermitteln und in Array gpnr speichern
    $oRange2 = $oWorkBook3.Activesheet.Range("A1").EntireRow
    Local $gp = "g"
    Local $gpnr[0]
    
    
    For $i = 1 to 15
    
    
    $gp = "g" & $i
    
    
    ConsoleWrite($gp)
    
    
    Local $aResult4 = _Excel_RangeFind($oWorkbook3, $gp, $oRange2, Default, $xlWhole)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Error searching the range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ;_ArrayDisplay($aResult4, "Excel UDF: _Excel_RangeFind Example "& $gp, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    Local $spalte[2] = StringSplit($aResult4[0][2],"$")
    _ArrayAdd($gpnr, $spalte[2])
    ;ConsoleWrite($gpnr[$i-1])
    
    
    Next
    
    
    ;_ArrayDisplay($gpnr, "Excel UDF: _Excel_RangeFind Example "& $gp, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    ;Über alle Zeilen den jeweiligen GP ermitteln
    
    
    Local $zeilen = $oWorkBook3.ActiveSheet.UsedRange.Rows.Count
    
    
    
    
    For $j = 2 to $zeilen
    
    
    Local $spalte
    
    
    For $i = 1 to 15
    
    
    $gpspalte = $gpnr[$i-1]
    $cell = $gpspalte & $j
    
    
    Local $sResult = _Excel_RangeRead($oWorkbook3, Default, $cell)
    ConsoleWrite($sResult)
    if $sResult = 1 Then
    $oRange2 = $oWorkBook3.Activesheet.Range("A1").EntireRow
    $search = "Title" & $i
    Local $aResult2 = _Excel_RangeFind($oWorkbook3, $search, $oRange2, Default, $xlWhole)
    Local $spalte[2] = StringSplit($aResult2[0][2],"$")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    ;ConsoleWrite($spalte[2])
    Local $sResult = _Excel_RangeRead($oWorkbook3, Default, $spalte[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, $sResult, "A" & $j)
    
    
    $search = "First Name" & $i
    Local $aResult2 = _Excel_RangeFind($oWorkbook3, $search, $oRange2, Default, $xlWhole)
    Local $spalte[2] = StringSplit($aResult2[0][2],"$")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    ;ConsoleWrite($spalte[2])
    Local $sResult = _Excel_RangeRead($oWorkbook3, Default, $spalte[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, $sResult, "B" & $j)
    
    
    $search = "Last Name" & $i
    Local $aResult2 = _Excel_RangeFind($oWorkbook3, $search, $oRange2, Default, $xlWhole)
    Local $spalte[2] = StringSplit($aResult2[0][2],"$")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    ;ConsoleWrite($spalte[2])
    Local $sResult = _Excel_RangeRead($oWorkbook3, Default, $spalte[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, $sResult, "C" & $j)
    
    
    $search = "Job Title" & $i
    Local $aResult2 = _Excel_RangeFind($oWorkbook3, $search, $oRange2, Default, $xlWhole)
    Local $spalte[2] = StringSplit($aResult2[0][2],"$")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    ;ConsoleWrite($spalte[2])
    Local $sResult = _Excel_RangeRead($oWorkbook3, Default, $spalte[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, $sResult, "D" & $j)
    
    
    $search = "Department" & $i
    Local $aResult2 = _Excel_RangeFind($oWorkbook3, $search, $oRange2, Default, $xlWhole)
    Local $spalte[2] = StringSplit($aResult2[0][2],"$")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    ;ConsoleWrite($spalte[2])
    Local $sResult = _Excel_RangeRead($oWorkbook3, Default, $spalte[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, $sResult, "E" & $j)
    
    
    $search = "Email " & $i
    Local $aResult2 = _Excel_RangeFind($oWorkbook3, $search, $oRange2, Default, $xlWhole)
    Local $spalte[2] = StringSplit($aResult2[0][2],"$")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    ;ConsoleWrite($spalte[2])
    Local $sResult = _Excel_RangeRead($oWorkbook3, Default, $spalte[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, $sResult, "F" & $j)
    
    
    $search = "Phone_Contact" & $i
    Local $aResult2 = _Excel_RangeFind($oWorkbook3, $search, $oRange2, Default, $xlWhole)
    Local $spalte[2] = StringSplit($aResult2[0][2],"$")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    ;ConsoleWrite($spalte[2])
    Local $sResult = _Excel_RangeRead($oWorkbook3, Default, $spalte[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, $sResult, "G" & $j)
    
    
    EndIf
    Next
    Next
    
    
    
    
    
    
    Local $zeilen = $oWorkBook2.ActiveSheet.UsedRange.Rows.Count
    For $j = 2 to $zeilen
    
    
    If _Excel_RangeRead($oWorkbook2, Default, "AL" &$j) = "Informationen" Then
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, "true" , "AO" & $j)
    Else
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, "false" , "AO" & $j)
    EndIf
    If _Excel_RangeRead($oWorkbook2, Default, "AL" &$j) = "Termin" Then
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, "true" , "AP" & $j)
    Else
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, "false" , "AP" & $j)
    EndIf
    
    
    Next
    
    
    $oRange2 = $oWorkBook3.Activesheet.Range("A1").EntireRow
    $search = "Wrap-up"
    Local $aResult2 = _Excel_RangeFind($oWorkbook3, $search, $oRange2, Default, $xlWhole)
    Local $spalte[2] = StringSplit($aResult2[0][2],"$")
    $oRange = $oWorkBook3.Activesheet.Range($spalte[2] & "1").EntireColumn
    ;Local $spalnr = "1:" & $i
    _Excel_RangeCopyPaste($oWorkbook2.Worksheets(1), $oRange, "AL1", Default, Default)
    Local $oRange3 = $oWorkBook2.Activesheet.Range("AL1").EntireColumn
    
    
    _Excel_RangeReplace($oWorkbook2, Default, $oRange3, "Wrap-up" , "Abschluss")
    
    
    
    
    ;~ ;Abgleich mit Lieferung wegen Adressänderungen
    
    
    Local $sWorkbook = @UserProfileDir & "\Reporting\Dialerimport.xlsx"
    Local $oWorkbook = _Excel_BookOpen($oExcel, $sWorkbook)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Error opening '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ; MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Workbook '" & $sWorkbook & "' has been opened successfully." & @CRLF & @CRLF & "Creation Date: " & $oWorkbook.BuiltinDocumentProperties("Creation Date").Value)
    
    
    $oRange2 = $oWorkBook.Activesheet.Range("A1").EntireRow
    Local $aResult2 = _Excel_RangeFind($oWorkbook, "Phone", $oRange2, Default)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Error searching the range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Find all occurrences of value '37000' (partial match)." & @CRLF & "Data successfully searched.")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    For $i = 0 To UBound($aResult2,  $UBOUND_ROWS) - 1
    
    
    If UBound($aResult2, 1) > 0 Then
    Local $spalte = StringSplit($aResult2[$i][2],"$")
    $oRange = $oWorkBook.Activesheet.Range($spalte[2] & "1").EntireColumn
    $oRange.NumberFormat = "0"
    EndIf
    Next
    
    
    
    
    $oRange2 = $oWorkBook2.Activesheet.Range("A1").EntireRow
    $oRange = $oWorkBook.Activesheet.Range("A1").EntireRow
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Account Code", $oRange2, Default, $xlWhole)
    Local $acexp[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Company", $oRange2, Default, $xlWhole)
    Local $compexp[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Addline1", $oRange2, Default, $xlWhole)
    Local $add1exp[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Addline2", $oRange2, Default, $xlWhole)
    Local $add2exp[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Addline3", $oRange2, Default, $xlWhole)
    Local $add3exp[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Zipcode", $oRange2, Default, $xlWhole)
    Local $zipexp[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "City", $oRange2, Default, $xlWhole)
    Local $cityexp[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Phone_Company", $oRange2, Default, $xlWhole)
    Local $phoneexp[2] = StringSplit($aResult2[0][2],"$")
    
    
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Company_NEW", $oRange2, Default, $xlWhole)
    Local $compexpn[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Addline1_NEW", $oRange2, Default, $xlWhole)
    Local $add1expn[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Addline2_NEW", $oRange2, Default, $xlWhole)
    Local $add2expn[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Addline3_NEW", $oRange2, Default, $xlWhole)
    Local $add3expn[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Zipcode_NEW", $oRange2, Default, $xlWhole)
    Local $zipexpn[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "City_NEW", $oRange2, Default, $xlWhole)
    Local $cityexpn[2] = StringSplit($aResult2[0][2],"$")
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Phone_Company_NEW", $oRange2, Default, $xlWhole)
    Local $phoneexpn[2] = StringSplit($aResult2[0][2],"$")
    
    
    
    
    Local $aResult = _Excel_RangeFind($oWorkbook, "Account Code", $oRange, Default, $xlWhole)
    Local $aclief[2] = StringSplit($aResult[0][2],"$")
    Local $aResult = _Excel_RangeFind($oWorkbook, "Company", $oRange, Default, $xlWhole)
    Local $complief[2] = StringSplit($aResult[0][2],"$")
    Local $aResult = _Excel_RangeFind($oWorkbook, "Addline1", $oRange, Default, $xlWhole)
    Local $add1lief[2] = StringSplit($aResult[0][2],"$")
    Local $aResult = _Excel_RangeFind($oWorkbook, "Addline2", $oRange, Default, $xlWhole)
    Local $add2lief[2] = StringSplit($aResult[0][2],"$")
    Local $aResult = _Excel_RangeFind($oWorkbook, "Addline3", $oRange, Default, $xlWhole)
    Local $add3lief[2] = StringSplit($aResult[0][2],"$")
    Local $aResult = _Excel_RangeFind($oWorkbook, "Zipcode", $oRange, Default, $xlWhole)
    Local $ziplief[2] = StringSplit($aResult[0][2],"$")
    Local $aResult = _Excel_RangeFind($oWorkbook, "City", $oRange, Default, $xlWhole)
    Local $citylief[2] = StringSplit($aResult[0][2],"$")
    Local $aResult = _Excel_RangeFind($oWorkbook, "Phone_Company", $oRange, Default, $xlWhole)
    Local $phonelief[2] = StringSplit($aResult[0][2],"$")
    
    
    
    
    Local $zeilen = $oWorkBook2.ActiveSheet.UsedRange.Rows.Count
    For $j = 2 to $zeilen
    
    
    $acnr = _Excel_RangeRead($oWorkbook2, Default, $acexp[2] &$j)
    
    
    $oRange = $oWorkBook.Activesheet.Range($aclief[2] & "1").EntireColumn
    
    
    Local $aResult = _Excel_RangeFind($oWorkbook, $acnr, $oRange, Default, $xlWhole)
    Local $liefzeile[3] = StringSplit($aResult[0][2],"$")
    
    
    if _Excel_RangeRead($oWorkbook2, Default, $compexp[2] &  $j) <> _Excel_RangeRead($oWorkbook, Default, $complief[2] & $liefzeile[3]) Then
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook2, Default, $compexp[2] & $j) , $compexpn[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook, Default, $complief[2] & $liefzeile[3]) , $compexp[2] & $j)
    EndIf
    
    
    if _Excel_RangeRead($oWorkbook2, Default, $add1exp[2] & $j) <> _Excel_RangeRead($oWorkbook, Default, $add1lief[2] & $liefzeile[3]) Then
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook2, Default, $add1exp[2] & $j) , $add1expn[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook, Default, $add1lief[2] & $liefzeile[3]) , $add1exp[2] & $j)
    EndIf
    
    
    if _Excel_RangeRead($oWorkbook2, Default, $add2exp[2] & $j) <> _Excel_RangeRead($oWorkbook, Default, $add2lief[2] & $liefzeile[3]) Then
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook2, Default, $add2exp[2] & $j) , $add2expn[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook, Default, $add2lief[2] & $liefzeile[3]) , $add2exp[2] & $j)
    EndIf
    
    
    if _Excel_RangeRead($oWorkbook2, Default, $add3exp[2] & $j) <> _Excel_RangeRead($oWorkbook, Default, $add3lief[2] & $liefzeile[3]) Then
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook2, Default, $add3exp[2] & $j) , $add3expn[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook, Default, $add3lief[2] & $liefzeile[3]) , $add3exp[2] & $j)
    EndIf
    
    
    if _Excel_RangeRead($oWorkbook2, Default, $zipexp[2] & $j) <> _Excel_RangeRead($oWorkbook, Default, $ziplief[2] & $liefzeile[3]) Then
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook2, Default, $zipexp[2] & $j) , $zipexpn[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook, Default, $ziplief[2] & $liefzeile[3]) , $zipexp[2] & $j)
    EndIf
    
    
    if _Excel_RangeRead($oWorkbook2, Default, $cityexp[2] & $j) <> _Excel_RangeRead($oWorkbook, Default, $citylief[2] & $liefzeile[3]) Then
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook2, Default, $cityexp[2] & $j) , $cityexpn[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook, Default, $citylief[2] & $liefzeile[3]) , $cityexp[2] & $j)
    EndIf
    
    
    if _Excel_RangeRead($oWorkbook2, Default, $phoneexp[2] & $j) <> _Excel_RangeRead($oWorkbook, Default, $phonelief[2] & $liefzeile[3]) Then
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook2, Default, $phoneexp[2] & $j) , $phoneexpn[2] & $j)
    _Excel_RangeWrite($oWorkbook2, $oWorkbook2.Activesheet, _Excel_RangeRead($oWorkbook, Default, $phonelief[2] & $liefzeile[3]) , $phoneexp[2] & $j)
    EndIf
    
    
    
    
    Next
    
    
    $oRange2 = $oWorkBook2.Activesheet.Range("A1").EntireRow
    Local $aResult2 = _Excel_RangeFind($oWorkbook2, "Phone", $oRange2, Default)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Error searching the range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Find all occurrences of value '37000' (partial match)." & @CRLF & "Data successfully searched.")
    ;_ArrayDisplay($aResult2, "Excel UDF: _Excel_RangeFind Example "& $search, "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
    
    
    For $i = 0 To UBound($aResult2,  $UBOUND_ROWS) - 1
    
    
    If UBound($aResult2, 1) > 0 Then
    Local $spalte = StringSplit($aResult2[$i][2],"$")
    $oRange = $oWorkBook2.Activesheet.Range($spalte[2] & "1").EntireColumn
    $oRange.NumberFormat = "0"
    EndIf
    Next
    
    
    
    
    _Excel_BookSaveAs($oWorkbook2, $sWorkbook2, Default, True)
    _Excel_Close($oExcel, False, True)
    Alles anzeigen
  • Programm (Excel) beenden mit Aufgabenplaner

    • MiBert
    • 28. April 2021 um 10:45

    Hallo zusammen,

    ich habe ein AutoIt-Script geschrieben, welches täglich einige Änderungen an diversen Excel-Tabellen durchführt. Hierfür werden drei verschiedene Excel-Tabellen (diese liegen auf einem Sharepoint-Laufwerk) mit _Excel_Open() geöffnet und am Ende mit _Excel_Close($oExcel, False, True) geschlossen. Bzw. sie sollten geschlossen werden.

    Wenn ich das Script "manuell" entweder über den Script-Editor oder auch als kompilierte .exe starte/ausführe klappt alles. Nun habe ich einen Task im Aufgabenplaner erstellt, welcher die .exe-Datei jeden morgen ausführt. Das macht er auch. Alles funktioniert. Die Excel-Dateien werden geändert, erstellt und auch gespeichert. Aber Excel wird nicht beendet.

    Somit habe ich jeden Morgen auf dem entsprechenden Rechner drei geöffnete Excel-Tabellen...

    Wenn es Sinn macht, bzw. erforderlich ist kann ich natürlich auch gerne das Script posten.

    Danke für eure Hilfe

    Michael

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™