SendKeys

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
    Bild

    Betrifft: SendKeys
    von: Jorainbo
    Geschrieben am: 01.11.2003 18:22:25

    Hallo Leute,

    danke erstmal Steffen und ChrisL für Antwortversuch - meine Frage war:
    weiß jemand, warum Befehle, die NACH einer Reihe von SendKeys-Anweisungen folgen, zu völlig chaotischen Fehlfunktionen führen ?

    Stelle ich beispielsweise eine MsgBox-Anweisung ans Ende einer Schleife, passiert allerhand, nur nicht das was ich will - steht die MsgBox am Anfang der Schleife, funktionierts ...

    Das Problem hatte ich auch schon öfters in anderen codes ... hier der aktuelle. Er dient dazu Daten aus einer Excel-Liste in ein ML4-Programm zu übertragen, das "Bedarfsmeldungen verwalten" heisst. Normalerweise wird dort von Hand reingeschrieben oder kopiert.

    Option Explicit
    Dim Nr, Mge, AB, LT


    
    Sub Übertragen()
        AB = InputBox("AB ?")    'Auftragsnummer
        For Each Nr In Range("B2:B100")
            If Nr.Value > 0 And Cells(Nr.Row, 7).Value <> "ok" Then
                AppActivate "SumMatPos"    'Excel-Datei, die den Code ausführt
                If MsgBox("weiter ?", vbOKCancel, "Bedarf übertragen") = vbCancel Then
                    GoTo Ende    'jeder Schleifendurchlauf wird einmal freigegeben
                Else
                    Cells(Nr.Row, 7).Value = "ok"
                    Mge = Cells(Nr.Row, 6).Value
                    LT = Cells(Nr.Row, 8).Value
                    AppActivate "Bedarfsmeldungen verwalten"    'ML4-Anwendung
                    SendKeys "%n", True    'mit Alt+n NEUE Position anlegen
                    SendKeys Nr, True
                    SendKeys "{TAB}", True
                    SendKeys Mge, True
                    SendKeys "{TAB}" & "{ENTER}" & "{TAB}" & "{ENTER}", True
                    SendKeys LT, True
                    SendKeys "{TAB 4}", True
                    SendKeys AB, True
                    SendKeys "{TAB 6}", True
                    SendKeys "{ENTER}", True
                End If
            End If
        Next Nr
    Ende:
    End Sub
    




    So funktionierts - steht aber z.B. der MsgBox-Befehl nach den SendKeys, so schlagen die SendKeys grösstenteils fehl und der Rest des Codes wird fehlerhaft ausgeführt, z.B. wird der Wert der Variablen AB plötzlich irgendeiner Zelle im Excel-Blatt zugewiesen und lauter so'n Zeug °.-\

    So, das war jetzt wahrscheinlich zuviel info, aber viel hilft viel ... manchmal ;-) danke schonmal

    ciao
    Tom


    Bild


    Betrifft: AW: SendKeys
    von: Hajo_Zi
    Geschrieben am: 01.11.2003 18:28:58

    Hallo Jorainbo

    in diesem Forum gibt es den Schalter offen, damit brauchen Fragen nicht wiederholt werden.


    Bitte keine Mail, Probleme sollten im Forum gelöst werden.

    Microsoft MVP für Excel

    Das Forum lebt auch von den Rückmeldungen.




    Bild


    Betrifft: AW: SendKeys
    von: axel.meyer
    Geschrieben am: 02.11.2003 10:22:35

    hi tom,

    ich habe bei sendkeys gute erfahrungen gemacht, wenn ich ein

    Application.Wait Now + TimeSerial(0, 0, 1)

    eingefügt habe. macht natürlich keinen sinn, wenn du ein langes makro hast und viele dieser Wait -stellen brauchst, weil das makro lang wird. auf der anderen seite habe ich schon vielfach gelesen,daß sendkeys ohnehin keine allzu stabile angelegenheit ist.

    gruß, axel


    Bild


    Betrifft: AW: SendKeys
    von: Jorainbo
    Geschrieben am: 02.11.2003 13:15:47


    danke Hajo und Axel - ich werde Application.Wait nochmal ausprobieren. Irgendwo hatte ich es schon drin, aber nur an einer einzigen Stelle. SendKeys ist sicher nicht die eleganteste Lösung, aber gibts denn eine bessere Möglichkeit, in eine fremde Andwendung zu schreiben ? Das Problem ist immer, daß unsere Administratoren ständig überlastet sind und ich deshalb eine eigene Lösung finden muß. In der ML4-Anwendung zu programmieren fällt also mangels Berechtigung und Kenntnissen erstmal flach. Und wo ist nun der Schalter 'offen' ?

    Gruß
    Tom


    Bild


    Betrifft: AW: SendKeys
    von: axel.meyer
    Geschrieben am: 03.11.2003 08:07:23

    hi tom,

    der schalter "offen" ist im menue links neben der forums-page. allerdings mußt du im

    https://www.herber.de/forum/

    sein, nicht im

    https://www.herber.de/forum/body.html

    nur kann ich dir nicht sagen, warum ich (oder du?) auch mal in ~/body.html hineingekommen bin. und: für das umgehen von send-keys fällt mir auch nicht immer etwas ein. es ist ja sogar bei excel-internen anwendungen so, daß nicht immer alles sauber ausgeführt wird und ein wait da wunder wirkt. bsp: zielwertsuche. wenn ich die in einem makro brauche, dann lasse ich die immer 2-fach ablaufen mit einer warte-hunderstel dazwischen. häufig führt er die nämlich nicht aus, und auf diese weise klappt es.

    gruß, axel


     Bild

    Beiträge aus den Excel-Beispielen zum Thema " unterschiedliche Zellbreite/-höhe"