Application.Sendkeys schreibt in falsches Blatt
02.01.2005 18:08:55
Niels
Ich hatte mein Problem schon in ähnlicherer Form am 02.01.05 um 00:13:02 beschrieben.
Sämtliche Lösungsvorschläge haben jedoch nicht funktioniert.
Ich habe nun das Programm weiter vereinfacht, es steht nur hier zum Download unter dem Dateinamen "15511.xls" bereit, damit Ihr es diesmal leicht selber ausprobieren könnt.
Hier ist das nicht wie gewünscht funktionierende VBA-Programm:
Sub Test()
Sheets("Tabelle1").Activate
Range("A1").Activate
Application.SendKeys "1" + "{RETURN}"
Rem Exit Sub
Sheets("Tabelle2").Activate
Range("A2").Activate
End Sub
Die Arbeitsmappe besteht aus den Blättern "Tabelle1" und "Tabelle2" sosie dem obigem VBA-Code. Beide Blätter sind vollkommen leer.
Das Programm aktiviert das Blatt Tabelle1 und anschließend die Zelle A1.
Application.SendKeys soll nun eine 1 in diese Zelle schreiben.
Anschließend wird die Tabelle2 aktiviert und dort die Zelle A2.
Leider macht das Programm nicht das, was ich will, denn die 1 wird in die Zelle A2 des Blattes Tabelle2 geschrieben.
Der Tastaturpuffer wird also anscheinend zu spät ausgelesen. (erst nach Programm-Ablauf ?)
Wird das Programm nach Application.SendKeys mit Exit
Sub abgebrochen, so steht die 1 wie gewünscht in Zelle A1 der Tabelle1.
Ich bin kein VBA-Anfänger sondern babe schon über 5000 Zeilen in VBA programmiert. Mir ist also absolut klar, das ich die 1 auch einfacher in die Zelle A1 der Tabelle1 bekommen kann, z.B, mir Range("A1")="1". Dies ist jedoch nur ein Beispiel um ein Problem zu zeigen, was ich in gleicher Form in einem komlexen Programm habe.
Wer ist ein echter VBA-Könner und hat eine Lösung unter Verwendung der SendKeys Anweisung?
Bitte probiert eure Lösung, bitte nach Möglichkeit vorher aus, den nicht funktionierende Vorschläge habe ich schon genug.
Danke.