AutoIt Speichern in excel

  • Hallo,

    ich bin neu im thema und weiß noch nciht genau wie alles geht

    meine plan ist es einen pausentimer zu erstellen der speichert wann man in die pause geht

    indem man in GuicreatCombo etwas auswählt und das was man ausgewählt hat dann in Excel gespeichert wird

    mein script siet bis jetzt so aus

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Excel.au3>
    local $app ,$xlsdir
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("PausenTimer", 371, 268, 192, 124)
    GUISetBkColor(0xFF0000)
    $Group1 = GUICtrlCreateGroup("Zeit", 32, 32, 305, 33)
    $Label4 = GUICtrlCreateLabel("Es ist:" &@HOUR& ":" &@MIN& ":" &@SEC , 40, 44)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Datum", 32, 88, 305, 33)
    $Label5 = GUICtrlCreateLabel("Heute ist der:" &@MDAY&"."&@MON&"."&@YEAR , 40, 100)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label1 = GUICtrlCreateCombo("PausenZeit", 32, 136,305,33)
    GUICtrlSetData (-1, "08:00-08:30")
    GUICtrlSetData (-1, "08:30-09:00")
    GUICtrlSetData (-1, "09:00-09:30")
    GUICtrlSetData (-1, "09:30-10:00")
    GUICtrlSetData (-1, "10:00-10:30")
    GUICtrlSetData (-1, "10:30-11:00")
    GUICtrlSetData (-1, "11:00-11:30")
    GUICtrlSetData (-1, "11:30-12:00")
    GUICtrlSetData (-1, "12:00-12:30")
    GUICtrlSetData (-1, "13:30-13:00")
    GUICtrlSetData (-1, "13:00-13:30")
    GUICtrlSetData (-1, "13:30-14:00")
    GUICtrlSetData (-1, "14:00-14:30")
    GUICtrlSetData (-1, "14:30-15:00")
    GUICtrlSetData (-1, "15:00-15:30")
    GUICtrlSetData (-1, "15:30-16:00")
    GUICtrlSetData (-1, "16:00-16:30")
    GUICtrlSetData (-1, "16:30-17:00")
    GUICtrlSetData (-1, "17:00-17:30")
    GUICtrlSetData (-1, "17:30-18:00")
    GUICtrlSetData (-1, "18:00-18:30")
    GUICtrlSetData (-1, "18:30-19:00")
    GUICtrlSetData (-1, "19:00-19:30")
    GUICtrlSetData (-1, "19:30-20:00")
    GUICtrlSetData (-1, "20:00-20:30")
    GUICtrlSetData (-1, "20:30-21:00")
    GUICtrlSetData (-1, "21:00-21:30")
    GUICtrlSetData (-1, "21:30-22:00")
    GUICtrlSetData (-1, "22:00-22:30")
    GUICtrlSetData (-1, "22:30-23:00")
    GUICtrlSetData (-1, "23:00-23:30")
    GUICtrlSetData (-1, "23:30-24:00")
    GUICtrlSetData (-1, "24:00-24:30")
    $Label2 = GUICtrlCreateCombo("Name:", 32, 180, 305, 21)
    GUICtrlSetData (-1, "Juergen")
    GUICtrlSetData (-1, "Tim")
    GUICtrlSetData (-1, "Juergen")

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

    $Start = GUICtrlCreateButton("Start", 32, 232, 105, 25)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Stop = GUICtrlCreateButton("Stop", 232, 232, 105, 25)
    GUICtrlSetBkColor(-1, 0xC0C0C0)
    $Pausentimer = GUICtrlCreateLabel("Pausentimer", 160, 8, 62, 25)
    $PAUSE = GUICtrlCreateLabel("30:00", 160, 232, 40, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    GUISetState ()

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

    While 1

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

    $start=timerinit()
    GUICtrlSetData($label4,"Es ist: "&@HOUR &":"&@MIN &":"& @sec)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    $STart=timerinit()
    GUICtrlSetData($label5,"Heute ist der:" &@MDAY&"."&@MON&"."&@YEAR)
    Switch $nmsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

    Die frage ist geht es so wie ich es mir gedacht und wenn ja wie genau :)

    Mfg Asakuya

  • Erstmal eine Gegenfrage wozu willst das in Excel speichern?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    • Offizieller Beitrag

    Damit die ergebnisse ordentlich in einer tabelle aufgelistet werden


    Dann verwende ein Listview, wozu extra ein Excel-Dokument erstellen. :whistling:

    Übrigens: Verwende kein Koda, kommt eh nur Mist bei raus: Deine Combo hat den Variablennamen "$Label1" :wacko:
    Und schau dir mal Schleifen an. Hier zeig ich dir, wie du mit wesentlich weniger Aufwand die Combo befüllen kannst (Übrigens gibt es keine Uhrzeit "24 Uhr" - Das ist dann "0 Uhr" ;)):

    [autoit]

    Local $hh = 8, $mm = 0, $sTime1, $sTime2
    For $i = 1 To 33
    $sTime1 = StringFormat('%02d:%02d', $hh, $mm)
    If $mm = 30 Then
    $mm = 0
    $hh += 1
    If $hh = 24 Then $hh = 0
    Else
    $mm = 30
    EndIf
    $sTime2 = StringFormat('%02d:%02d', $hh, $mm)
    GUICtrlSetData (-1, $sTime1 & '-' & $sTime2)
    Next

    [/autoit]
  • Zwar nun etwas OffTopic aber da wiederspreche ich die mal direkt BugFix. Benutzer schon immer Koda für Grundgerüst. Bis auf paar unnötige includes rauszuschmeißen funktioniert es problemlos.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ist auf jedenfall schonmal praktisch mit mit der befüllung mal schauen ob ich das mit listview hinbekomme
    und das mit 0uhr hätte ich auch dran denken können :rofl:

    • Offizieller Beitrag

    Die Variante zum Befüllen war mir noch zu lang. :D

    Hier die ganz kurze Variante:

    [autoit]

    Local $hh = 8
    For $i = 0 To 32
    GUICtrlSetData(-1, StringReplace(StringFormat('%02d:%02d-%02d:%02d', $hh, Mod($i,2)*30, $hh+Mod($i,2), Mod($i+1,2)*30), '24', '00'))
    $hh += Mod($i,2)
    Next

    [/autoit]
  • also ich bekomm das irgentwie nicht hin das das der die sachen in die Listview speichert :(
    also die sachen die in der Combo stehen in die entsprechenenden reihen von der ListView


    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Excel.au3>
    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <File.au3>
    #include <GUIConstantsEx.au3>

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

    local $app ,$xlsdir ,$s_string , $s_mode, $Speichern
    $Form1 = GUICreate("PausenTimer", 371, 368, 192, 124)
    GUISetBkColor(0xFF0000)
    $Group1 = GUICtrlCreateGroup("Zeit", 32, 32, 305, 33)
    $Label4 = GUICtrlCreateLabel("Es ist:" &@HOUR& ":" &@MIN& ":" &@SEC , 40, 44)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Datum", 32, 88, 305, 33)
    $Label5 = GUICtrlCreateLabel("Heute ist der:" &@MDAY&"."&@MON&"."&@YEAR , 40, 100)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label1 = GUICtrlCreateCombo("PausenZeit", 32, 136,305,33)
    Local $hh = 8, $mm = 0, $sTime1, $sTime2
    For $i = 1 To 33 ;sorgt dafür
    $sTime1 = StringFormat('%02d:%02d', $hh, $mm) ;das die zeiten
    If $mm = 30 Then ;von 8:00- bis 0:30
    $mm = 0 ;angegeben werden
    $hh += 1
    If $hh = 24 Then $hh = 0
    Else
    $mm = 30
    EndIf
    $sTime2 = StringFormat('%02d:%02d', $hh, $mm)
    GUICtrlSetData (-1, $sTime1 & '-' & $sTime2)
    Next ;bis hier
    Local $hh = 8

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

    $Label2 = GUICtrlCreateCombo("Name:", 32, 180, 305, 21)
    GUICtrlSetData (-1, "Juergen")
    GUICtrlSetData (-1, "Tim")

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

    $listview2 = GUICtrlCreateListView ( "Namen|Zeit", 32,215,305,120)
    $Speichern = GUICtrlCreateButton("Speichern", 155, 340)

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

    Local $time
    GUISetState ()
    While 1
    $start=timerinit()
    GUICtrlSetData($label4,"Es ist: "&@HOUR &":"&@MIN &":"& @sec)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Speichern
    $STart=timerinit()
    GUICtrlSetData($label5,"Heute ist der:" &@MDAY&"."&@MON&"."&@YEAR)
    Switch $nmsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    EndSwitch
    WEnd

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

    ich hoffe ihr könnt mir da unter die arme greifen :rolleyes:

  • So müsste es gehen. Hab außerdem bei der Zeitanzeige noch was geändert. Das Label wird jetzt nur aktualisiert, wenn die Zeit sich auch geändert hat, und nicht bei jeden Durchlauf der Schleife.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Excel.au3>
    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <File.au3>
    #include <GUIConstantsEx.au3>

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

    Local $app, $xlsdir, $s_string, $s_mode, $Speichern
    $Form1 = GUICreate("PausenTimer", 371, 368, 192, 124)
    GUISetBkColor(0xFF0000)
    $Group1 = GUICtrlCreateGroup("Zeit", 32, 32, 305, 33)
    $Label4 = GUICtrlCreateLabel("Es ist:" & @HOUR & ":" & @MIN & ":" & @SEC, 40, 44)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Datum", 32, 88, 305, 33)
    $Label5 = GUICtrlCreateLabel("Heute ist der: " & @MDAY & "." & @MON & "." & @YEAR, 40, 100)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label1 = GUICtrlCreateCombo("PausenZeit", 32, 136, 305, 33)
    Local $hh = 8, $mm = 0, $sTime1, $sTime2
    For $i = 1 To 33 ;sorgt dafür
    $sTime1 = StringFormat('%02d:%02d', $hh, $mm) ;das die zeiten
    If $mm = 30 Then ;von 8:00- bis 0:30
    $mm = 0 ;angegeben werden
    $hh += 1
    If $hh = 24 Then $hh = 0
    Else
    $mm = 30
    EndIf
    $sTime2 = StringFormat('%02d:%02d', $hh, $mm)
    GUICtrlSetData(-1, $sTime1 & '-' & $sTime2)
    Next ;bis hier
    Local $hh = 8

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

    $Label2 = GUICtrlCreateCombo("Name:", 32, 180, 305, 21)
    GUICtrlSetData(-1, "Juergen")
    GUICtrlSetData(-1, "Tim")

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

    $listview2 = GUICtrlCreateListView("Namen|Zeit", 32, 215, 305, 120)
    $Speichern = GUICtrlCreateButton("Speichern", 155, 340)

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

    Local $time
    GUISetState()
    While 1
    if StringTrimLeft(GUICtrlRead($Label4), 14) <> @SEC Then GUICtrlSetData($Label4, "Es ist: " & @HOUR & ":" & @MIN & ":" & @SEC)
    if StringTrimRight(StringTrimLeft(GUICtrlRead($Label5), 15), 8) <> @MDAY Then GUICtrlSetData($Label5, "Heute ist der: " & @MDAY & "." & @MON & "." & @YEAR)

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Speichern
    $zeit = GUICtrlRead($Label1)
    $name = GUICtrlRead($Label2)
    $index = _GUICtrlListView_AddItem($listview2, $name)
    _GUICtrlListView_AddSubItem($listview2, $index, $zeit, 1)

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

    EndSwitch
    WEnd

    [/autoit]

    Mfg