![]() |
Remove Focus from Form
I have a form that pops up on a spreadsheet whenever certain cells are
selected. It is strickly informational, and I show it modeless. After it displays, I can still click back on the spreadsheet and enter information, but I would like for the focus to remain on the cell on the spreadsheet rather than go to the form. Is there any way to do this? -- Bill @ UAMS |
Remove Focus from Form
You need to send a set focus message to the worksheet window. Paste
all of the following code into the userform's code module. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _ ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) As Long Private Const WM_SETFOCUS = &H7 Private Sub UserForm_Activate() SetSheetFocus End Sub Private Sub SetSheetFocus() Dim HWND_XLDesk As Long Dim HWND_XLApp As Long Dim HWND_XLSheet As Long HWND_XLApp = Application.hwnd HWND_XLDesk = FindWindowEx(HWND_XLApp, 0&, "XLDESK", vbNullString) HWND_XLSheet = FindWindowEx(HWND_XLDesk, 0&, "EXCEL7", ActiveWindow.Caption) SendMessage HWND_XLSheet, WM_SETFOCUS, 0&, 0& End Sub Cordially, Chip Pearson Microsoft Most Valuable Professional, Excel, 1998 - 2010 Pearson Software Consulting, LLC www.cpearson.com On Tue, 16 Mar 2010 11:34:01 -0700, BillCPA <Bill @ UAMS wrote: I have a form that pops up on a spreadsheet whenever certain cells are selected. It is strickly informational, and I show it modeless. After it displays, I can still click back on the spreadsheet and enter information, but I would like for the focus to remain on the cell on the spreadsheet rather than go to the form. Is there any way to do this? |
All times are GMT +1. The time now is 05:16 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com