![]() |
key Press on Forms Button
Ok This is slightly different. Here I am using forms
buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine |
key Press on Forms Button
Todd,
Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine |
key Press on Forms Button
This is always coming up normal
-----Original Message----- Todd, Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine . |
key Press on Forms Button
I'm kindof a newbie and I was wondering why you need the
line: Const vkShift As Integer = &H10 I looked at Microsofts API info for the GetKeyState function. In reading that, I cannot see where I would have come to the undertanding that I would need the extra line. It sounds to me like vkShift is a virtual KeyCode constant that windows knows. I would relly appreciate some mentoring on this. I would like to use more API calls, but have difficulty understanding how to use them based on the info Microsoft provides...The API info is at: http://msdn.microsoft.com/library/default.asp? url=/library/en- us/winui/winui/windowsuserinterface/userinput/keyboardinput /keyboardinputreference/keyboardinputfunctions/getkeystate. asp -----Original Message----- Todd, Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine . |
key Press on Forms Button
It works for me Todd. Excuse me if this is blindingly obvious, but the shift
key has to be held down in conjunction with clicking the button. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... This is always coming up normal -----Original Message----- Todd, Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine . |
key Press on Forms Button
You can also use this technique on the Control toolbox buttons.
-- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Bob Phillips" wrote in message ... It works for me Todd. Excuse me if this is blindingly obvious, but the shift key has to be held down in conjunction with clicking the button. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... This is always coming up normal -----Original Message----- Todd, Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine . |
key Press on Forms Button
Hawk,
You don't NEED that line, as you can pass the value &H10 to the API directly If GetKeyState(&H10) < 0 Then Often with APIs there are a set of values that can be passed to the API, and you see these declared as constants, as a maintenance and understanding aid. As to how I knew it was &H10, well I guess that is just down to learning and experience. For APIs I use 3 main references. The first is Allapi's API Guide (download from www.allapi.net -great site), the second is Dan Appleman's Visual Basic Programmer's Guide to the Win32 API, and when starting out, Jason Bock's Win32 API Tutorial. Plus of course there are thousands of examples out on the net. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Hawk" wrote in message ... I'm kindof a newbie and I was wondering why you need the line: Const vkShift As Integer = &H10 I looked at Microsofts API info for the GetKeyState function. In reading that, I cannot see where I would have come to the undertanding that I would need the extra line. It sounds to me like vkShift is a virtual KeyCode constant that windows knows. I would relly appreciate some mentoring on this. I would like to use more API calls, but have difficulty understanding how to use them based on the info Microsoft provides...The API info is at: http://msdn.microsoft.com/library/default.asp? url=/library/en- us/winui/winui/windowsuserinterface/userinput/keyboardinput /keyboardinputreference/keyboardinputfunctions/getkeystate. asp -----Original Message----- Todd, Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine . |
key Press on Forms Button
I put:
GetKeyState() in the click event of the commandbutton but what should I put in the ()? What I put the following in a the commandbutton click event by itself it works: Const vkShift As Integer = &H10 If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If Cant figure it out, maybe its something very simple I missing... -----Original Message----- You can also use this technique on the Control toolbox buttons. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Bob Phillips" wrote in message ... It works for me Todd. Excuse me if this is blindingly obvious, but the shift key has to be held down in conjunction with clicking the button. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... This is always coming up normal -----Original Message----- Todd, Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine . . |
key Press on Forms Button
And also I cant find anything in VBHelp about vkShift or
fnKey. Do I need a different version? -----Original Message----- You can also use this technique on the Control toolbox buttons. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Bob Phillips" wrote in message ... It works for me Todd. Excuse me if this is blindingly obvious, but the shift key has to be held down in conjunction with clicking the button. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... This is always coming up normal -----Original Message----- Todd, Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine . . |
key Press on Forms Button
Thanks for the references...I will check out Win 32 API
Tutorial... -----Original Message----- Hawk, You don't NEED that line, as you can pass the value &H10 to the API directly If GetKeyState(&H10) < 0 Then Often with APIs there are a set of values that can be passed to the API, and you see these declared as constants, as a maintenance and understanding aid. As to how I knew it was &H10, well I guess that is just down to learning and experience. For APIs I use 3 main references. The first is Allapi's API Guide (download from www.allapi.net -great site), the second is Dan Appleman's Visual Basic Programmer's Guide to the Win32 API, and when starting out, Jason Bock's Win32 API Tutorial. Plus of course there are thousands of examples out on the net. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Hawk" wrote in message ... I'm kindof a newbie and I was wondering why you need the line: Const vkShift As Integer = &H10 I looked at Microsofts API info for the GetKeyState function. In reading that, I cannot see where I would have come to the undertanding that I would need the extra line. It sounds to me like vkShift is a virtual KeyCode constant that windows knows. I would relly appreciate some mentoring on this. I would like to use more API calls, but have difficulty understanding how to use them based on the info Microsoft provides...The API info is at: http://msdn.microsoft.com/library/default.asp? url=/library/en- us/winui/winui/windowsuserinterface/userinput/keyboardinput /keyboardinputreference/keyboardinputfunctions/getkeysta te. asp -----Original Message----- Todd, Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine . . |
key Press on Forms Button
and you won't. vkSHft is just a name assigned to the constant, and fnKey is
just the name of the argument. They could be Joe and Bill for all the difference it makes, it is just a handle. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... And also I cant find anything in VBHelp about vkShift or fnKey. Do I need a different version? -----Original Message----- You can also use this technique on the Control toolbox buttons. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Bob Phillips" wrote in message ... It works for me Todd. Excuse me if this is blindingly obvious, but the shift key has to be held down in conjunction with clicking the button. -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... This is always coming up normal -----Original Message----- Todd, Here is an example Declare Function GetKeyState Lib "user32" (ByVal fnKey As Long) As Integer Const vkShift As Integer = &H10 Sub TestButton() If GetKeyState(vkShift) < 0 Then MsgBox "Shift pressed" Else MsgBox "Normal" End If End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Todd Huttenstine" wrote in message ... Ok This is slightly different. Here I am using forms buttons, not commandbuttons. I have a forms button called "Button 1" A macro is assigned to it called macro "Macro1". The macro contains the following 2 lines of code: Range("A5").Select Selection.Copy I want to be able to determine when I click on this button if I was holding down the shift key or not. Now I have about 100 forms buttons like this on my worksheet and they all have the same 2 lines of code, just referencing different cells. What I am trying to get at is this... I want to be able to hold shift down when I click on each of these buttons and if the program detects I am holding shift, it run a different code. How do I do this? Thanx Todd Huttenstine . . |
All times are GMT +1. The time now is 11:19 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com