Excel: immer 3 zeilen auswählen, dann kopieren und in anderes Tabellenblatt transformiert einfügen

  • Hi,
    ich beschäftige mich erst seit kurzem mit AutoIt und stehe vor folgendem Problem:

    Ich habe eine Excel-Datei, in der ganz viele Werte in nur einer Zelle untereinander stehen. Es sind immer 3er-Blöcke: Die jeweils erste beeinhaltet das Datum, die zweite die Zeit und die dritte den Text. Danach beginnt das ganze wieder von vorne.

    Da ich die Daten nicht untereinander, sondern nebeneinander haben möchte, um sie anschließend nach Datum und Zeit sortieren zu können, muss ich immer die jeweils 3 Zeilen markieren, diese dann in die Zwischenablage kopieren, auf das nächste Tabellenblatt gehen, dort einen Rechtsklick in der ersten Zeile (bei den darauffolgenden natürlich in der nächsten leeren Zeile) einen Rechtsklick ausführen und noch "transformieren" auswählen. Danach sind die Daten dann in einer Zelle nebeneinander in 3 Spalten aufgeteilt und das Spiel geht von vorne los...

    Lässt sich so etwas mit AutoIt lösen?

    Ich wäre für jede Antwort dankbar! :)

    lg
    toby

    • Offizieller Beitrag

    Lässt sich so etwas mit AutoIt lösen?


    Ja, kein Problem.
    Aber du meinst sicher statt "Zelle" - "Zeile".
    Also:
    Tabelle1 (SpalteA, Zeile1) ==> Tabelle2 (SpalteA, Zeile1)
    Tabelle1 (SpalteA, Zeile2) ==> Tabelle2 (SpalteB, Zeile1)
    Tabelle1 (SpalteA, Zeile3) ==> Tabelle2 (SpalteC, Zeile1)
    nächster Block
    Tabelle1 (SpalteA, Zeile4) ==> Tabelle2 (SpalteA, Zeile2)
    Tabelle1 (SpalteA, Zeile5) ==> Tabelle2 (SpalteB, Zeile2)
    Tabelle1 (SpalteA, Zeile6) ==> Tabelle2 (SpalteC, Zeile2)
    usw.

    Ist das korrekt?

  • Hallo tobysc,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deinem Problem: dazu nimmst du am besten Funktionen aus der Excel.au3, in der Hilfe findest du diese unter Benutzerdefinierte Funktionen Referenz | Excel Management. Schau dir dort am besten

    [autoit]

    _ExcelBookNew;evtl. wenn in eine eigene Datei
    _ExcelBookOpen
    _ExcelBookSave
    _ExcelReadSheetToArray
    _ExcelSheetAddNew
    _ExcelWriteArray

    [/autoit]

    am,

    mfg autoBert

  • Hier mal ein Beispiel:

    Spoiler anzeigen
    [autoit]

    #Include <Excel.au3>
    #Include <Array.au3>

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

    $xlsFile = @DesktopDir & "\Test.xlsx"
    $eintraege = 12
    $zusammengehoerig = 3

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

    $oExcel = _ExcelBookOpen($xlsFile)

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

    Local $aExcel[$zusammengehoerig]

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

    For $i = 0 To $eintraege - 1
    For $j = 1 To $zusammengehoerig
    $aExcel[$j - 1] = _ExcelReadCell($oExcel, $i * $zusammengehoerig + $j)
    Next
    _ExcelSheetActivate($oExcel, "Tabelle2")
    _ExcelWriteArray($oExcel, 1, $i + 1, $aExcel, 1)
    _ExcelSheetActivate($oExcel, "Tabelle1")
    Next

    [/autoit]