ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   VBA: Problem with ctrl- and a-key Listbox event (https://www.excelbanter.com/excel-programming/398865-vba-problem-ctrl-key-listbox-event.html)

[email protected]

VBA: Problem with ctrl- and a-key Listbox event
 
Hi,
I try to let VBA copy a listbox items when holding down the ctrl- and
pressing the a-key (select all).

Any suggestion on why this doesn't work?
Do I need to combine a KeyPressed event?

Thanks in advance

Regards

Frank

___________________________


Private Sub Listbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,
ByVal Shift As Integer)
Dim i As Integer
If KeyCode = 97 And Shift = 2 Then
For i = 0 To Listbox1.ListCount - 1
Listbox2.AddItem Listbox1.List(i)
Next i
End If
End Sub


joel

VBA: Problem with ctrl- and a-key Listbox event
 
There is a multiselect item in listboxes that can be set.

Indicates whether the object permits multiple selections.

Syntax

object.MultiSelect [= fmMultiSelect]

The MultiSelect property syntax has these parts:

Part Description
object Required. A valid object.
fmMultiSelect Optional. The selection mode that the control uses.


Settings

The settings for fmMultiSelect a

Constant Value Description
fmMultiSelectSingle 0 Only one item can be selected (default).
fmMultiSelectMulti 1 Pressing the SPACEBAR or clicking selects or deselects
an item in the list.
fmMultiSelectExtended 2 Pressing SHIFT and clicking the mouse, or pressing
SHIFT and one of the arrow keys, extends the selection from the previously
selected item to the current item. Pressing CTRL and clicking the mouse
selects or deselects an item.


Remarks

When the MultiSelect property is set to Extended or Simple, you must use the
list box's Selected property to determine the selected items. Also, the Value
property of the control is always Null.

The ListIndex property returns the index of the row with the keyboard focus.



" wrote:

Hi,
I try to let VBA copy a listbox items when holding down the ctrl- and
pressing the a-key (select all).

Any suggestion on why this doesn't work?
Do I need to combine a KeyPressed event?

Thanks in advance

Regards

Frank

___________________________


Private Sub Listbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,
ByVal Shift As Integer)
Dim i As Integer
If KeyCode = 97 And Shift = 2 Then
For i = 0 To Listbox1.ListCount - 1
Listbox2.AddItem Listbox1.List(i)
Next i
End If
End Sub



Chip Pearson

Problem with ctrl- and a-key Listbox event
 
Change the KeyCode from 97 to 65 or, better, vbKeyA

If KeyCode = vbKeyA And Shift = 2 Then


--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)


wrote in message
oups.com...
Hi,
I try to let VBA copy a listbox items when holding down the ctrl- and
pressing the a-key (select all).

Any suggestion on why this doesn't work?
Do I need to combine a KeyPressed event?

Thanks in advance

Regards

Frank

___________________________


Private Sub Listbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,
ByVal Shift As Integer)
Dim i As Integer
If KeyCode = 97 And Shift = 2 Then
For i = 0 To Listbox1.ListCount - 1
Listbox2.AddItem Listbox1.List(i)
Next i
End If
End Sub



Chip Pearson

Problem with ctrl- and a-key Listbox event
 
I should have added that you really should be using the KeyUp not the
KeyDown event. The KeyDown event will run over and over again as long as the
key is down, stopping only when the key is released. This will cause the
code to add the items in ListBox1 to ListBox2 many times. Using KeyUp
prevents this.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)



"Chip Pearson" wrote in message
...
Change the KeyCode from 97 to 65 or, better, vbKeyA

If KeyCode = vbKeyA And Shift = 2 Then


--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)


wrote in message
oups.com...
Hi,
I try to let VBA copy a listbox items when holding down the ctrl- and
pressing the a-key (select all).

Any suggestion on why this doesn't work?
Do I need to combine a KeyPressed event?

Thanks in advance

Regards

Frank

___________________________


Private Sub Listbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,
ByVal Shift As Integer)
Dim i As Integer
If KeyCode = 97 And Shift = 2 Then
For i = 0 To Listbox1.ListCount - 1
Listbox2.AddItem Listbox1.List(i)
Next i
End If
End Sub




Frank Krogh[_3_]

Problem with ctrl- and a-key Listbox event
 
Thank you for your reply.

In addition, one of the listbox1 items had to be selected in advance for the
Ctrl-A to work. So I just added "Listbox1.selected(0)" after filling the
listbox1.

Frank

"Chip Pearson" wrote:

I should have added that you really should be using the KeyUp not the
KeyDown event. The KeyDown event will run over and over again as long as the
key is down, stopping only when the key is released. This will cause the
code to add the items in ListBox1 to ListBox2 many times. Using KeyUp
prevents this.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)



"Chip Pearson" wrote in message
...
Change the KeyCode from 97 to 65 or, better, vbKeyA

If KeyCode = vbKeyA And Shift = 2 Then


--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)


wrote in message
oups.com...
Hi,
I try to let VBA copy a listbox items when holding down the ctrl- and
pressing the a-key (select all).

Any suggestion on why this doesn't work?
Do I need to combine a KeyPressed event?

Thanks in advance

Regards

Frank

___________________________


Private Sub Listbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,
ByVal Shift As Integer)
Dim i As Integer
If KeyCode = 97 And Shift = 2 Then
For i = 0 To Listbox1.ListCount - 1
Listbox2.AddItem Listbox1.List(i)
Next i
End If
End Sub




"Chip Pearson" wrote:

I should have added that you really should be using the KeyUp not the
KeyDown event. The KeyDown event will run over and over again as long as the
key is down, stopping only when the key is released. This will cause the
code to add the items in ListBox1 to ListBox2 many times. Using KeyUp
prevents this.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)



"Chip Pearson" wrote in message
...
Change the KeyCode from 97 to 65 or, better, vbKeyA

If KeyCode = vbKeyA And Shift = 2 Then


--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)


wrote in message
oups.com...
Hi,
I try to let VBA copy a listbox items when holding down the ctrl- and
pressing the a-key (select all).

Any suggestion on why this doesn't work?
Do I need to combine a KeyPressed event?

Thanks in advance

Regards

Frank

___________________________


Private Sub Listbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,
ByVal Shift As Integer)
Dim i As Integer
If KeyCode = 97 And Shift = 2 Then
For i = 0 To Listbox1.ListCount - 1
Listbox2.AddItem Listbox1.List(i)
Next i
End If
End Sub





All times are GMT +1. The time now is 11:50 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com