Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
328to332
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SendKeys

SendKeys
01.11.2003 18:22:25
Jorainbo
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


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SendKeys
01.11.2003 18:28:58
Hajo_Zi
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.


AW: SendKeys
02.11.2003 10:22:35
axel.meyer
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
Anzeige
AW: SendKeys
02.11.2003 13:15:47
Jorainbo
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
AW: SendKeys
03.11.2003 08:07:23
axel.meyer
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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige