Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verständnissproblem mit Sendkeys

Verständnissproblem mit Sendkeys
07.11.2006 16:02:17
Klaus
Moin Forum,
ich versuche, aus Excel heraus in einem anderem Programm (unser hausinternes Buchungssystem) eine Buchung durchzuführen. Dazu bediene ich mich des SendKeys Befehls.
Folgendes Sub hab ich mir mit Hilfe der Recherche zusammen gebastelt:
(In Spalte A stehen meine Auftragsnummern)

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub OffeneAuftraegeBuchen()
a = Range("A1")
If a = "" Then Exit Sub
SendKeys ("%{tab}")        'Ins Buchungsprogramm wechseln
SendKeys ("AUFT")          'Auftrag
SendKeys (a)               'Auftragsnummer
SendKeys (" ")             'Leerzeichen
SendKeys ("~"), True       'Enter, Auftrag auswählen
Sleep 100                  'Warten
SendKeys ("{F1}")          'Auftrag abschließen
End Sub

Soweit funktioniert es auch (Ich hab ganz schön geflucht, bis ich auf das TRUE nach ~ gekommen bin).
Das Problem ist: In Spalte A stehen mehrere Auftragsnummern. Wie kann ich die Sub rekursiv wiederholen, um zB. die Auftragsnummern aus A1 bis A100 ins Buchungsprogramm zu schießen? Durch das ALT+Tab bin ich ja aus Excel raus, und ich schaffs nicht mehr auf die Zelleninhalte zuzugreifen. Wie komm ich zurück ins Excel?
Dabei ergibt sich auch noch eine Frage: Das Fensterwechseln mit Alt+Tab halte ich für recht gefährlich, ich könnte ja in sonst einem Programm landen. Gibt es da eine elegantere Möglichkeit?
Gruß,
Klaus M.vdT.

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

Betreff
Datum
Anwender
Anzeige
AW: Verständnissproblem mit Sendkeys
07.11.2006 16:07:06
Rudi
Hallo,
schau dir mal AppActivate an.
Gruß
Rudi
Vielleicht hilft ein Array?
07.11.2006 16:08:46
Klaus
Jaa,
da kommt mir grad eine Idee, die ich aber nicht in VBA-Code umsetzen kann. Ich könnte doch
- die Inhalte der Spalte A in ein Array einlesen,
- mit Sendkeys Alt+TAB das Fenster wechseln
- "for each a in Array" die Sendkeys-Kommandos ausführen.
Könnte das so klappen? Kann mir jemand helfen, aus der Idee einen VBA Code zu generieren?
Gruß,
Klaus M.vdT.
AW: Vielleicht hilft ein Array?
07.11.2006 16:16:26
Rudi
Hallo,
vielleicht so?

Sub tt()
Dim vntAuftraege, i As Integer
vntAuftraege = Range(Cells(1, 1), Cells(1, 1).End(xlDown))
SendKeys ("%{tab}")        'Ins Buchungsprogramm wechseln
For i = 1 To UBound(vntAuftraege, 1)
SendKeys ("AUFT")          'Auftrag
SendKeys (vntAuftraege(i, 1))              'Auftragsnummer
SendKeys (" ")             'Leerzeichen
SendKeys ("~"), True       'Enter, Auftrag auswählen
Sleep 100                  'Warten
SendKeys ("{F1}")          'Auftrag abschließen
Next i
AppActivate Application.Caption 'zurück nach XL
End Sub
Gruß
Rudi
Anzeige
AW: Vielleicht hilft ein Array?
07.11.2006 16:46:38
Klaus
Hallo Rudi,
AppActivate hat mich schonmal ein Stück weiter gebracht. Das einlesen ins Array versuch ich aber trotzdem, erscheint mir eleganter als hundert mal das Fenster zu wechseln :)
Ich tüftel die nächsten paar Tage noch ein bisschen damit, danke für den Gedankenanstoß!
Gruß,
Klaus M.vdT.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige