VBA Excel 2000: SendKeys in Dialogbox

Hallo Cracks,

mein Problem: Ich möchte via Application.SendKeys einen Text an eine Dialogbox weitergeben. Dazu muß ich den SendKeys-Befehl ja vor dem Öffnen des Dialogs schicken. Nun dauert aber das Öffnen der Dialogbox so lange, daß die Hälfte des zu schickenden Strings bis dahin „durch“ ist und im Eingabefeld der Box nur noch das Ende des Strings erscheint.
Ich habe es mit wait=true bei SendKeys versucht, das half aber auch nicht.

Also Frage: Wie kriege ich es hin, daß der komplette String aus SendKeys erst geschickt wird, wenn die Box offen ist, so daß nichts verloren geht?

Schon mal danke für hilfreiche Antworten,

Kubi

Das deutet ja darauf hin, daß SendKeys asynchron gestartet wird. Kann man das irgendwie beeinflussen? Ich weiß ja nicht, was das für ein Dialog ist.

Kristian

Hallo Kristian,

ob man das beeinflussen kann, weiß ich nicht. Der Dialog ist der „Senden an Mailempfänger (als Anlage)“-Dialog aus dem „Datei“-Menü.

Irgendeine Idee?

Gruß Kubi

ob man das beeinflussen kann, weiß ich nicht. Der Dialog ist
der „Senden an Mailempfänger (als Anlage)“-Dialog aus dem
„Datei“-Menü.

Achso. Aber wie öffnest Du denn diesen Dialog? Machst Du das auch per Makro?

Das Öffnen dauert übrigens deshalb so lange, weil ja erst Deine Mail-Applikation geladen wird. Sollte das Outlook sein, kannst Du das Senden sicher auch direkt abwickeln, indem Du im Code ein Outlook-Mail-Item erzeugst und abschickst. Ich weiß nur nicht, wie man dann die Datei als Anhang mit reinbekommt.

Kristian

Achso. Aber wie öffnest Du denn diesen Dialog? Machst Du das
auch per Makro?

Ja. Das Makro soll eine Tabelle per Outlook an bestimmte Empfänger senden.

Das Öffnen dauert übrigens deshalb so lange, weil ja erst
Deine Mail-Applikation geladen wird.

Das ist mir schon klar. Aber wie kann ich dafür sorgen, daß SendKeys solange wartet, bis das geschehen ist?

Sollte das Outlook sein,

kannst Du das Senden sicher auch direkt abwickeln, indem Du im
Code ein Outlook-Mail-Item erzeugst und abschickst.

Hä? Tschuldige, aber meine VBA-Kenntnisse sind rudimentär. Ich arbeite meist über „aufzeichnen“ und Anpassen des Codes…

Ich weiß

nur nicht, wie man dann die Datei als Anhang mit reinbekommt.

Das ist allerdings das Ziel der Aktion, das muß also sein.

Hast Du noch irgendwelche Vorschläge (gegebenenfalls auch, wie man das Problem anders lösen kann)…?

Danke schonmal. Kubi

Ich nehme mal an, daß Du mit dem RoutingSlip arbeitest. Ich weiß ehrlich gesagt nicht, was Du da mit Sendkeys noch hinschicken willst. Du kannst doch alles vorher eingeben, so wie ich es vermutet hatte. Oder habe ich da was falsch verstanden?
Hier unten ist einfach mal das Beispiel aus der Hilfe. Also bei mir geht´s, wobei ich hier im Netzwerk arbeite und ständig Meldungen kriege, daß ein „anderes Programm“ (hier Excel) mit Outlook rumspielt.

Sub test()
 Workbooks("Book2").HasRoutingSlip = True
 With Workbooks("BOOK2").RoutingSlip
 .Reset
 .Status
 .Delivery = xlOneAfterAnother
 .Recipients = "[email protected]"
 .Subject = "Here is BOOK2.XLS"
 .Message = "Here is the workbook. What do you think?"
 End With
 Workbooks("BOOK2").Route
End Sub

Solltest Du wirklich SendKeys noch brauchen, dann schreibe doch einfach die „.Reset“-Funktion, setze danach eine Warteschleife, die lang genug ist, und mache dann mit „.Subject“ undso weiter. Mit dem ersten Aufruf des RoutingSlips wird nämlich Outlook geladen.

Kristian

1 „Gefällt mir“

Aha!
Ich sagte ja, daß ich über „Makro aufzeichnen“ gegangen bin. Und dann wird der Dialog mit dem Befehl

Application.Dialogs(xlDialogSendMail).Show

geöffnet. Dann steht aber halt nichts drin, sondern ich muß mit SendKeys die Einträge machen.

Ich werde jetzt mal RoutinfSlip probieren. Scheint so, als müßte es dann klappen.

Herzlichen Dank, gibt’n Sternchen.

Kubi

Ich sagte ja, daß ich über „Makro aufzeichnen“ gegangen bin.
Und dann wird der Dialog mit dem Befehl Application.Dialogs(xlDialogSendMail).Show geöffnet.

Achsoo, das wußte ich nicht. Hättest Du sagen sollen.

Ich werde jetzt mal RoutinfSlip probieren. Scheint so, als müßte es dann klappen.

Denke ich auch.
Kleiner Tip: Wenn Du im VBA-Editor ein Schlüsselwort markierst und Strg-F1 drückst, kommt - sofern sie installiert ist - die Hilfe dazu. Dort wiederrum sind die „Beispiel“- und „Gehört zu“-Knöpfe oft interessant. So habe ich auch VBA gelernt.

Herzlichen Dank, gibt’n Sternchen.

Ah, danke, habe lange keins bekommen, trotz aller Mühe :wink:

Kristian