VBA: Problem with ctrl- and a-key Listbox event

F

fokrogh

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
 
J

Joel

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 are:

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.
 
C

Chip Pearson

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)
 
C

Chip Pearson

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)
 
F

Frank Krogh

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top