View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Why doesn't this function return TRUE?

It may be shorter to write, but it doesn't exit your function as soon as a
True condition is encountered so you could continue to loop and do needless
checks - thus shorter to write, longer to execute.

Regards,
Tom Ogilvy




RB Smissaert wrote in message
...
Thanks, it works fine now.
Used Daniel's suggestion as it is a bit shorter.
Wasn't sure about the Call keyword, but it was used in the example I
mentioned.

RBS


"Daniel.M" wrote in message
...
Hi RBS,

For one thing:

Instead of
Call CheckMissingTicks(nodChild, intDepth + 1)
put
CheckMissingTicks=CheckMissingTicks(nodChild, intDepth

+
1)

Don't know if it solves all your problems.

Regards,

Daniel M.

"RB Smissaert" wrote in message
...
Using Excel XP.
Made a function (from an example pointed out by Tom Ogilvy) that

checks
for
missing ticked checkboxes in a Treeview.
It should return TRUE if a particular node is found (with a particular
image) and no ticks have been found yet.
The function does work when I check it with a messagebox, but it still
returns FALSE when it should be TRUE.
This is the function:

Function CheckMissingTicks(ByRef nodCurrent As Node, _
ByVal intDepth As Integer) As Boolean

Dim nodChild As Node
Dim HasTick As Boolean

If nodCurrent.Children 0 Then
For Each nodChild In MainForm.TreeView1.Nodes
If Not nodChild.Parent Is Nothing Then
If nodChild.Parent Is nodCurrent Then

If nodChild.Checked = True And _
Not nodChild.Image = 9 Then
HasTick = True
End If

If HasTick = False And _
nodChild.Image = 9 Then
'collection node, but no tick found yet
CheckMissingTicks = True
Exit Function
End If

Call CheckMissingTicks(nodChild, intDepth + 1)
End If
End If
Next nodChild
End If

End Function


And this is how the function is called:

If CheckMissingTicks(TreeView1.Nodes(1), 0) = True Then .............


I solved it for now by declaring a variable that will be true if the
particular conditions are met and checking for this variable, but I am

just
puzzled by what is wrong here. Most likely I am overlooking something

really
simple and somebody could help me out easily.


RBS