Thread: Error code 13
View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
George Nicholson George Nicholson is offline
external usenet poster
 
Posts: 149
Default Error code 13

works fine for me , even when closing the book.
The difference might be due to how the combo is being filled (or emptied
during close...) between versions. Sounds like some sort of timing issue, so
it could even be a CPU difference.

In any case, the combo is the most likely (only possible?) source of a Null,
so maybe this would help:

If(IsNull(CLIENT) Then
Exit Sub
'Alternatively, assign row a specific value if CLIENT has no selection.
'row = 2
Else
row= Clng(CLIENT.Value) + 2
End If

--
HTH,
George


"sebastienm" wrote in message
...
Weird. I tried the code (and I replace the typo-error 'rows' by 'row') and
i
works fine for me , even when closing the book.

Also, in the Immediate Window:
? Error(94)
returns: Invalid use of Null
So it seems lilke there is definitely some issue with a Null value
somewhere.

Does it break within that CLIENT_Change or at some other place ?
Do you have some code in the Workbook_BeforeClose event ?
Finally, what about replacing CLIENT_Change by CLIENT_CLick instead ?
--
Regards,
Sébastien
<http://www.ondemandanalysis.com
<http://www.ready-reports.com


"Yvester" wrote:

It's weird. I divise the code like you suggest and I take the liberty to
insert msgbox between each instruction and the result in each msgbox are
ok.

The error code comes only when I close the workbook.

I never think that excel can be so picky

thanks again
--
Yvester


"sebastienm" wrote:

:-)
Not sure what error 94 is but i wouldn't be surprised that there is a
Null
somewhere that messes up things.

You may want to cut your line of code into multiple lines to better
grasp
what's going on and which expression triggers the error.

Private Sub CLIENT_Change()
Dim row as Long
Dim v as variant

row= Clng(CLIENT.Value) + 2
v=Worksheets("Donnees").Cells(rows, 1)
Worksheets("Facture").Cells(5, 2).Value = v
End Sub

Note: an Integer only goes up to 32768 so the expression will fail
passed
that, therfore Cint will fail the same way. Instead, use CLng (Long).

--
Regards,
Sébastien
<http://www.ondemandanalysis.com
<http://www.ready-reports.com


"Yvester" wrote:

I try the Cint and it works but now, it's the error 94 who pop up!
geezzzz...


--
Yvester


"sebastienm" wrote:

the CLIENT.Value + 2 refeer to a specific row
I understand, but it don't think it is what it does.
What does the following expression returns (in the _Change sub):
debug.print CLIENT.Value + 2

If Client.Value retuns the a 'number' (as a String though: "10" and
not 10),
try replacing the above expression with
Clng(Client.Value) + 2
Still having the issue?

--
Regards,
Sébastien
<http://www.ondemandanalysis.com
<http://www.ready-reports.com


"Yvester" wrote:

Hi, maybe I didn't explain correctly my toughts.

the CLIENT.Value + 2 refeer to a specific row, based on the value
returned
by the CLIENT combobox + a constant (2 in this case). and then,
this value
(string) is put in a specific cell (5,2 or "B5".

Sorry for my poor explications on the first post

Yves

--
Yvester


"sebastienm" wrote:

Him

CLIENT.Value returns a string, say "Hello" therefore
CLIENT.Value + 2 returns 'hello2'

If you are looking for the index of the selection within the
combo, use:
Client.ListIndex + 2 ''' Note ListIndex starts at 0 for
the first item

If your combo contains numbers (stored as strings) and you
meant to use
these numbers, you have to convert them from strings to numbers
first:
Clng(Client.Value) + 2
--
Regards,
Sébastien
<http://www.ondemandanalysis.com
<http://www.ready-reports.com


"Yvester" wrote:

I receive the error code 13 when I close the workbook. here
is the code :

Private Sub CLIENT_Change()

Worksheets("Facture").Cells(5, 2).Value =
Worksheets("Donnees").Cells(CLIENT.Value + 2, 1)

End Sub

This sub's function is to put a text value taked from the
CLIENT combobox
value and to put it in a specific cell.

tx

--
Yvester