Excel verliert den Fokus

Hallo zusammen,

Bei folgender Sub in einem Arbeitsblatt mit einer Schaltfläche als Auslöser verliert Excel 2003 (in Citrix-Umgebung) den Fokus. Das heisst, das ein beliebiges anderes Fenster sich vor das Excel-Fenster schiebt, bzw. in Excel keine Eingaben mehr möglich sind ohne das Fenster manuell wieder zu aktivieren.:

Sub Schaltfläche1\_BeiKlick()
 If Range("A1") = 0 Then MsgBox "Zelle leer", vbInformation, "Eingabe": Range("A1").Select: Exit Sub
 Range("B1").Select
End Sub

Ich habe schon einiges ausprobiert - ohne Erfolg.
Bei meiner realen Anwendung geschieht das sogar nur bei jedem 2. auslösen des Codes
Für einen guten Tip wäre ich sehr dankbar.
Gruß
Arnold

Bei folgender Sub in einem Arbeitsblatt mit einer Schaltfläche
als Auslöser verliert Excel 2003 (in Citrix-Umgebung) den
Fokus. Das heisst, das ein beliebiges anderes Fenster sich vor
das Excel-Fenster schiebt, bzw. in Excel keine Eingaben mehr
möglich sind ohne das Fenster manuell wieder zu aktivieren.:

Bei meiner realen Anwendung geschieht das sogar nur bei jedem
2. auslösen des Codes

Hi Arnold,

nicht nachvollziehbar, m.E. muß das an Citrix oder einer anderen Anwendung liegen.

Probiers mal so:

Sub Schaltfläche1\_BeiKlick()
If Range("A1") = 0 Then
 MsgBox "Zelle leer", vbInformation, "Eingabe"
 Range("A1").Select
Else
 Range("B1").Select
End If
**ActiveWindow.WindowState = xlMaximized**
End Sub

Gruß
Reinhard

Hallo Reinhard,

Klappt leider auch nicht.
Das es wahrscheinlich mit Citrix zu tun hat, habe ich auch schon vermutet.
Trotzdem Danke
Gruß
Arnold

Das es wahrscheinlich mit Citrix zu tun hat, habe ich auch
schon vermutet.

Hi Arnold,

vielleicht klappt es ja irgendwie so:

Option Explicit
'
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, \_
ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, \_
ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, \_
ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
'
Sub Schaltfläche1\_BeiKlick()
Call ExcelVorne(True)
If Range("A1") = 0 Then
 MsgBox "Zelle leer", vbInformation, "Eingabe"
 Range("A1").Select
Else
 Range("B1").Select
End If
'Call ExcelVorne(False)
End Sub
'
Public Sub ExcelVorne(Optional yesno As Boolean = True)
Dim hwnd As Long
Dim n As Long
If yesno = True Then n = -1 Else n = -2
hwnd = FindWindow("XLMAIN", vbNullString)
Call SetWindowPos(hwnd, n, 0, 0, 0, 0, &H3)
Call SetWindowPos(hwnd, n, 0, 0, 0, 0, &H3)
End Sub

Gruß
Reinhard

Grüezi Arnold

Bei folgender Sub in einem Arbeitsblatt mit einer Schaltfläche
als Auslöser verliert Excel 2003 (in Citrix-Umgebung) den
Fokus. Das heisst, das ein beliebiges anderes Fenster sich vor
das Excel-Fenster schiebt, bzw. in Excel keine Eingaben mehr
möglich sind ohne das Fenster manuell wieder zu aktivieren.:

Setze mal die Eigenscaft ‚TakeFocusOnClick‘ der Schaltfläce auf ‚False‘ und teste ob dies dann noch immer so ist.

Mit freundlichen Grüssen

Thomas Ramel
[Win XP Pro SP-2 / xl2003 SP-3]