Excel automatisch scrollen

  • Hallo Community,

    nehmen wir mal an ich würde (nur als Beispiel) fortlaufend Text in eine Zelle, dann in die darunter, und darunter usw. schreiben, sieht man ja irgendwann nicht mehr, was geschrieben wird. Wie kann ich also automatisch nach unten scrollen lassen, dass ich immer das sehen kann, was gerade aktuell eingetragen wird?

    Danke für eure Hilfe
    Aquaplant

  • Hallo Aquaplant,

    hab leider kein Excel zum Ausprobieren, aber würde es mal mit Send("{DOWN}") im aktiven Excel Sheet probieren.

    Willi

  • Das dauert dann aber ziemlich...
    Würde es so machen: Drückt die Runtertaste nach unten und nach 500ms lässt es die Taste wieder los

    [autoit]

    Send("{down down}")
    Sleep(500)
    Sleep("{down up}")

    [/autoit]
  • ich glaube er möchte immer auf einer höhe mit der Eingabe sein... glaube nicht das es so einfach zu bewerkstelligen ist.

    21 is only half the truth.

  • Oder anderer Ansatz: Immer mit _ExcelRowInsert eine neue Reihe an sichtbarer Position einfügen und dort reinschreiben...

  • Ich benutze "_ExcelWriteCell()", das scrollt nicht automatisch mit nach unten. Wenn ich die Taste gedrückt lasse, lande ich unter Umständen aber sonstwo :S
    Kann man nicht immer zu der aktiven Zelle springen?

  • Probier ich morgen mal aus - jetzt geh ich pennen


    //EDIT: _ExcelRowInsert fügt nur neue Zeilen hinzu (die auch automatisch in Excel ergänzt wird)?

    Einmal editiert, zuletzt von Aquaplant (7. Mai 2010 um 11:01)

    • Offizieller Beitrag

    Das Scrollen erreichst du mit Range.Activate

    Hier ein Bsp.:

    [autoit]

    Local $oExcel = ObjCreate("Excel.Application") ; Excel-Objekt erstellen
    $oExcel.Visible = 1
    $oExcel.SheetsInNewWorkbook = 1 ; Anzahl der gewünschten Sheets beim Erstellen festlegen
    Local $oBook = $oExcel.Workbooks.Add ; im Excel-Objekt ein Workbook-Objekt erstellen
    Local $oSheet = $oBook.Sheets(1) ; Sheet-Objekt für Sheet 1 erstellen (Name oder Index)
    $oSheet.Name = 'Mein Sheet'

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

    For $i = 0 To 60
    For $j = 0 To 6
    $oSheet.Range("A1").Offset($i, $j).Value = Random(8,30,1)
    Next
    $oSheet.Range("A1").Offset($i, $j).Activate
    Sleep(50) ; nur damit es besser zu sehen ist
    Next

    [/autoit]