Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fokus zurück an Excel

Fokus zurück an Excel
13.06.2005 15:26:06
Christoph
Hallo zusammen
ich habe nochmals eine Frage:
Wie kann ich den Fokus zurück an Excel geben nachdem ich mit der Shell-Funktion ein anderes Programm gestartet habe?
mfg Christoph

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fokus zurück an Excel
13.06.2005 15:39:07
MichaV
Hi,
vielleicht reicht schon, den Fokus nicht erst abzugeben:
Shell "notepad.exe", vbMinimizedNoFocus
Gruss- Micha
AW: Fokus zurück an Excel
13.06.2005 15:48:04
Christoph
Hoi Micha,
vielen Dank für deine schnellen Antworten.
Nein, es reicht nicht den Fokus nicht abzugeben, da ich mit der Sendkeys-Methode das Programm steuern möchte. Hat jemand eine andere Idee?
mfg Christoph
AW: Fokus zurück an Excel
13.06.2005 16:03:56
MichaV
Hi,
noch ne schnelle Antwort, dann mach ich Feierabend.


      
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias _
      "FindWindowA" (
ByVal lpClassName As StringByVal _
      lpWindowName 
As StringAs Long
Private Declare Function SetForegroundWindow Lib "user32" ( _
      
ByVal hwnd As LongAs Long
Private Sub CommandButton2_Click()
Dim hActive As Long
hActive = FindWindow(vbNullString, Application.Name & " - " & ActiveWorkbook.Name)
'Shell ausfüren
Shell "notepad.exe", vbNormalFocus
DoEvents
'Tasten senden
SendKeys "Text wird eingegeben", True
'Excel in den Vordergund
SetForegroundWindow hActive
End Sub 


Gruss- Micha
Anzeige
AW: Fokus zurück an Excel
14.06.2005 09:32:05
Christoph
Guten Morgen
Es hat immer noch nicht geklappt. Wenn du mal Zeit hast kannst du dir gerne meine Arbeitsmappe anschauen:
https://www.herber.de/bbs/user/23851.xls
Die angesprochen Prozedur befindet sich im Formualr frmProjekdaten und reagiert auf das Ereignis cmdOK_Click.
Vielen Dank im Voraus!
mfg Christoph
AW: Fokus zurück an Excel
14.06.2005 10:36:51
Christoph
Ich habs hin gekriegt!Danke!
mfg Christoph
AW: Fokus zurück an Excel
14.06.2005 10:53:53
MichaV
Hi Christoph,

If ActiveWorkbook.name <> "Formular.xls" Then
strukto = Shell("U:\Eigene Dateien\SwissMem Ordner\MüC\stgr32.exe", vbMinimizedFocus)
'Du öffnest die Anwendung minimiert. Wie soll da SendKeys funzen? Hast mich doch
'selbst mal drauf hingewiesen ;o) Nimm vbNormalFocus
DoEvents
SendKeys "%(dn)", True
SendKeys "%(du)", True
SendKeys ActiveWorkbook.Path & "\" & txtNa.Text & ".stg", True
SendKeys "~"
'Hinter dem letzten SendKeys fehlt ein True. Bei mir wurde Excel in den Vordergrund
'gebracht, bevor der Tastenanschlag in der Shell- Anwendung angekommen war!
'Das gab dann eine Fehlermeldung in Excel.
'Mit True wartet SendKeys, bis die Eingabe auch wirklich verarbeitet wurde, dann erst
'gehts im Code weiter
End If

Ahso, dann ist da noch ein kleiner Fehler meinerseits. Ändere mal ein bischen drüber eine Zeile so um:
hActive = FindWindow("XLMAIN", Application.Caption)
Gruss- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Fokus zurück an Excel
14.06.2005 14:13:27
Christoph
Danke für den letzten Typ. Nun funktioniert wirklich alles. Noch eine Frage:
Muss damit Sendkeys funktioniert das Fenster offen sein oder muss es einfach den Fokus haben?
mfg Christoph
AW: Fokus zurück an Excel
14.06.2005 14:25:10
MichaV
Hi Christoph,
noch nicht ausprobiert?
Ich weiß es auch nicht 100%ig, aber so stehts in der OH:
"Sendet eine Tastenfolge (die aus einem oder mehreren Tastenanschlägen bestehen kann) an das aktive Fenster, als ob sie über die Tastatur eingegeben worden wäre."
Ich weiß nicht, ob man irgendwie per Tastatur Eingaben in ein geschlossenens Fenster vornehmen kann. Woanders in der VBA-OH steht, daß das aktive Fenster das Fenster im Vordergrund ist. Wenn ich ein Fenster aber schließe, kommt automatisch ein Neues in den Vordergrund.
Also ich würde sagen, SendKeys an geschlossene Fenster geht nicht.
Gruss- Micha
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige