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