Excel-Datei nach und nach füllen

  • Hallo an alle,

    es gibt zwar schon einige Themen zu Excel, aber aus denen werde ich leider nicht schlau. Ich möchte gern eine Excel-Datei mit zuvor ermittelten Werten erstellen. Dazu soll in der ersten Spalte das Datum, dann in der 2. Spalte die Systemzeit und in die 3. Spalte der Wert. Das dann halt hintereinander weggeschrieben, also immer eine Zeile dazu. Hatte mir da folgendes ausgedacht:

    [autoit]


    $x = 2 ; Zeile
    $y = 2
    $z = 2
    $l = "B" ; Spalte
    $m = "C"
    $n = "D"

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

    ; Schleife mit eigentlichem Programm
    ; [ausgelassen]

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

    ; Ermittlung der Laufzeit und Ausgabe in Datei
    $dif = TimerDiff ($time)

    $x = $x + 1 ; Erhöhung der Zeilenzahl innerhalb der Schleife
    $y = $y + 1
    $z = $z + 1

    $FileName= "C:\TestKSC.xls"
    $oExcel = ObjGet($FileName)

    $oExcel.Cells($l,$x).Value = _NowDate()
    $oExcel.Cells($m,$y).Value = _NowTime()
    $oExcel.Cells($n,$z).Value = StringFormat ("%.2f", $dif / 1000)
    $oExcel.Close

    [/autoit]

    Leider passiert da nichts. Die Fehlermeldung war auch nur, dass er das so nicht machen konnte- toll :pinch:

    Bin für jeden Tip dankbar!

    Einmal editiert, zuletzt von dhacker (7. September 2009 um 15:42)

  • Es gibt eine Excel-UDF

    Beispiel
    [autoit]

    #include <Date.au3>
    #include <Excel.au3>

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

    $time = TimerInit()
    $FileName= "C:\TestKSC.xls"

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

    $oExcel = _ExcelbookNew()
    _ExcelSheetAddNew($oExcel, "dlhacker")

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

    $x = 2 ; Zeile
    $y = 2
    $z = 2
    $l = 2 ; Spalte
    $m = 3
    $n = 4

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

    For $i = 1 To 10
    $dif = TimerDiff ($time)
    _ExcelWriteCell($oExcel, _NowDate(), $x, $l)
    _ExcelWriteCell($oExcel, _NowTime(), $y, $m)
    _ExcelWriteCell($oExcel, "'"&StringFormat ("%.2f", $dif / 1000), $z,$n)
    $x = $x + 1
    $y = $y + 1
    $z = $z + 1
    Next

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

    Sleep(2000)

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

    _ExcelBookSaveAs($oExcel, "C:\TestKSC.xls", "xls")
    _ExcelBookClose($oExcel)

    [/autoit]
  • Hey Funkey,

    vielen dank. Sieht sehr gut aus.

    Leider sagt mir Autoit nun beim Ausführen des Scriptes
    "#include <Excel.au3>
    Error: Error openning the file" 8|

  • Hey Funkey,

    vielen dank. Sieht sehr gut aus.

    Leider sagt mir Autoit nun beim Ausführen des Scriptes
    "#include <Excel.au3>
    Error: Error openning the file" 8|


    Man kann eben nur Dateien includen die man hat ...

  • hallo leute. ich habe ein problem. mein script öffnet excel und die entsprechende datei. jetzt möchte ich, das das script
    1. aus spalte B die nächst freie zelle sucht. also z.b. B1-B12 sind belegt und das script soll dann in B13 etwas reinschreiben.
    2. den wert, der immer links neben der nächsten freien B-Zelle ist, in die Zwischenablage kopiert.

    habt ihr ne idee?

    gruß zockerklaus

  • so jungs, nach langem schaffen habe ich es geschafft.
    mein script holt jetzt automatisch aus einer excelliste die nächst freie lizens und trägt den pcnamen, usernamen datum ein. dann startet es die windows installation, gibt den key ein und installiert.
    mein problem ist jetzt

    Run("MS Office 2007 Basic OEM\SETUP.EXE")
    WinWaitActive("2007 Microsoft Office System")
    Sleep(30000)
    Send($skey)

    ich möchte nicht zwischen winwaitactive und send($skey) keinen sleep. da es bei office installation mit "auto it window info" immer den gleichen Titel hat und keinen text, ist es mir noch nicht gelungen dies anders zu tun. Und dann nach der installation automatisch auf schließen klickt und ein msgbox öffnet mit (Installation erfolgreich)

    bitte um hilfe.
    danke

  • Hallo ZockerKlaus,

    sei bitte so freundlich und erstelle einen eigenen Thread, bei so alten Themen wird selten geantwortet,

    @dhacker, markier bitte deinen Thread als erledigt

    mfg (Auto)Bert