Excel Feld leer oder nicht?

  • Hi Leute

    Wie kann ich mit AutoIt überprüfen, ob das angeklickte Feld im Excel leer ist oder ob das was drin steht?

    Danke für die Hilfe.

  • Mit _ExcelReadCell. Aber wenn du es anklickst siehst du doch ob es leer ist oder nicht (mit deinen Augen).

  • "Aber wenn du es anklickst siehst du doch ob es leer ist oder nicht (mit deinen Augen). "

    Nicht wenn sein skript das Feld anklickt und er garnicht dabei ist.

  • Ja es ist klar, dass ich es mit den Augen sehe, aber das Skript sollte mir dann ein paar zahlen zusammenzählen.

    Um die Zahlen zusammen zu zählen muss ganz vorne ein = stehen.
    Also sollte das Skript =(dann die Zahl) schreiben.
    Wenn jetzt schon eine zahl drin steht muss es ja dann +(eine Zahl) heissen.

    Verstehst du?

    • Offizieller Beitrag

    Nicht wenn sein skript das Feld anklickt und er garnicht dabei ist.


    :wacko: Ein Skript, das Excel-Zellen anklickt?! Das wäre ja, als ob man sich die Schuhe mit 'nem Spannkloben zubindet. :rofl:
    Sag lieber mal, was es überhaupt werden soll, dann läßt sich auch sinnvolle Hilfestellung geben.

  • In einer Excel Datei steht in der Spalte A das Datum und in der spalte B sollte dann eben dieser Wert stehen.
    Ich habe bereits ein Skrip, welches mir die Zeit eines geöffneten Programms misst.
    Wenn das Programm nun geschlossen wird soll das Skript die Excel-Datei öffnen, das Datum suchen und eine Spalte rechts davon die Werte eintragen.
    Wenn jetzt aber dieses besagte Programm noch einmal geöffnet wird würde es ja die Zeit von vorher überschreiben.
    Aber es sollte wenn schon ein wert vorhanden ist einfach vor der zahl ein + machen und anschliessend die Zahl einfügen.

    Versteht ihr was ich meine?

  • Also ich schon. Und warum machst du das ganze nicht über ein Skript, sondern willst selber klicken?

    • Offizieller Beitrag

    Mal aus der Hüfte, ungetestet:

    Spoiler anzeigen
    [autoit]

    Func _WriteTimeToCell($sExcelPath, $sDate, $iTime)
    If StringRight($sExcelPath, 4) <> '.xls' Then $sPath &= '.xls'
    If Not FileExists($sExcelPath) Then Return SetError(1,0,0) ; Datei existiert nicht
    Local $oExcel = ObjGet('', "Excel.Application"), $fCreate = False, $address, $value
    If @error Then
    $oExcel = ObjCreate("Excel.Application")
    $fCreate = True
    EndIf
    With $oExcel
    .Visible = 0
    .Workbooks.Open($sExcelPath)
    $match = .ActiveWorkBook.Sheets(1).Range('A:A').Find($sDate)
    .Application.DisplayAlerts = False
    If Not IsObj($match) Then
    If $fCreate Then
    .Application.Quit
    Else
    .ActiveWorkBook.Close
    .Application.DisplayAlerts = True
    EndIf
    Return SetError(2,0,0) ; $sDate nicht gefunden
    EndIf
    $address = $match.Address(False, False)
    $value = .ActiveWorkBook.Sheets(1).Range($address).Offset(0, 1).Value
    .ActiveWorkBook.Sheets(1).Range($address).Offset(0, 1).Value = $value +$iTime
    .ActiveWorkBook.Save
    If $fCreate Then
    .Application.Quit
    Else
    .ActiveWorkBook.Close
    .Application.DisplayAlerts = True
    EndIf
    EndWith
    Return 1
    EndFunc

    [/autoit]