ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Adding and Reading a ListBox Item (https://www.excelbanter.com/excel-programming/330395-adding-reading-listbox-item.html)

Geoff

Adding and Reading a ListBox Item
 
Hi,
I populate a 2 column, MultiSelectMulti, ListBox on a form with worksheet
names which have data like so:

If Sheets(i).Cells(rnum, cnum).Value 0 Then
frmExport.lboSelectWeek.AddItem Sheets(i).Name
End If

The aim then is to select any number of sheets and copy paste the data to
another file. This I can manage ok. The problem arises when I try to
prevent a repeat copy paste of the same data.
To do this, after each sheet has been copied, a visual indicator is added to
the ListBox row and column of the sheet selected. The abbreviated code is:

For i = 0 To frmExport.lboSelectWeek.ListCount - 1

If frmExport.lboSelectWeek.Selected(i) = True Then
''*************

''< Do copy and paste to other workbook stuff

frmExport.lboSelectWeek.List(i, 1) = "Done" 'put an
indicator in

End If

Next

I would now like to prevent a repeat copy paste of the same data - even
though there is an indicator 'done'. The reason is, I have a 'Select All'
checkbox.

I have tried to trap this possibility by substituting the line marked
************* with:

If frmExport.lboSelectWeek.Selected(i) = True And Not
frmExport.lboSelectWeek.List(i,1)= "Done" Then

but get an error.

Curiously, if I insert a message box to read the item like so:

MsgBox frmExport.lboSelectWeek.List(i, 0) & vbCr & _
frmExport.lboSelectWeek.List(i, 1)

The msgbox reads both items correctly. Where am I going wrong?

I would very much appreciate some advice.

Geoff

Geoff

Adding and Reading a ListBox Item
 
Its sorted now. Its amazing what a few minutes away from the scene can do
sometimes. I tested for Null and it worked. The line:

If frmExport.lboSelectWeek.Selected(i) = True _
And Not frmExport.lboSelectWeek.List(i,1)= "Done" Then

should be:

If frmExport.lboSelectWeek.Selected(i) = True _
And IsNull(frmExport.lboSelectWeek.List(i,1) Then

Still don't know why the msgbox read correctly but at least the main code
works now.

Geoff

"Geoff" wrote:

Hi,
I populate a 2 column, MultiSelectMulti, ListBox on a form with worksheet
names which have data like so:

If Sheets(i).Cells(rnum, cnum).Value 0 Then
frmExport.lboSelectWeek.AddItem Sheets(i).Name
End If

The aim then is to select any number of sheets and copy paste the data to
another file. This I can manage ok. The problem arises when I try to
prevent a repeat copy paste of the same data.
To do this, after each sheet has been copied, a visual indicator is added to
the ListBox row and column of the sheet selected. The abbreviated code is:

For i = 0 To frmExport.lboSelectWeek.ListCount - 1

If frmExport.lboSelectWeek.Selected(i) = True Then
''*************

''< Do copy and paste to other workbook stuff

frmExport.lboSelectWeek.List(i, 1) = "Done" 'put an
indicator in

End If

Next

I would now like to prevent a repeat copy paste of the same data - even
though there is an indicator 'done'. The reason is, I have a 'Select All'
checkbox.

I have tried to trap this possibility by substituting the line marked
************* with:

If frmExport.lboSelectWeek.Selected(i) = True And Not
frmExport.lboSelectWeek.List(i,1)= "Done" Then

but get an error.

Curiously, if I insert a message box to read the item like so:

MsgBox frmExport.lboSelectWeek.List(i, 0) & vbCr & _
frmExport.lboSelectWeek.List(i, 1)

The msgbox reads both items correctly. Where am I going wrong?

I would very much appreciate some advice.

Geoff



All times are GMT +1. The time now is 01:49 PM.

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