Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Treeview - Noeud Existe ?

5 réponses
Avatar
Driss HANIB
Bonjour à tous

je voudrai savoir si un noeud, dont je connais la clé (éventuelle) existe.
je vois une méthode qui va utiliser ce noeud et ou je vais récupérer
l'éventelle erreur pour déterminer si il existe :
si'il y a erreur ( noeud absent) alors existe = faux.

Y-a-t'il une autre méthode sans gestion des erreurs ? ou peut on se
"contenter" de cette méthode.

Exemple (fait à main levée sans test)

' ---------------------------------------------------------------------------------------------
Function NoeudExiste(TV as mscomtlib.treeview, Clé asstring) as boolean

Dim Existe as boolean
Dim Chaine as string
Dim Noeud as mscomtlib.nodes

On Error goto GestEr
chaine = tv.nodes(Clé).text
NoeudExiste=true
exit sub

:gestEr
NoeudExiste = False

end function
' -----------------------------------------------------------------------------------------------
merci pour vos conseils

Driss

5 réponses

Avatar
Driss HANIB
function corrigée de bugs simples, mais toujours pas testée, modifié en
mettant un variant qui permettrait alors, peut être de mettre soit un indice
soit une clé..comme identifiant du noeud..
' ---------------------------------------------------------------------
Function NoeudExiste(TV As MSComctlLib.TreeView, ID As Variant) As Boolean

Dim Existe As Boolean
Dim Chaine As String
Dim Noeud As mscomtlib.Nodes

On Error GoTo gestEr
Chaine = TV.Nodes(ID).Text
NoeudExiste = True
Exit Function

: gestEr
NoeudExiste = False

End Function
---------------------------------------------------------'-------------------

Driss

"Driss HANIB" a écrit dans le message de news:

Bonjour à tous

je voudrai savoir si un noeud, dont je connais la clé (éventuelle) existe.
je vois une méthode qui va utiliser ce noeud et ou je vais récupérer
l'éventelle erreur pour déterminer si il existe :
si'il y a erreur ( noeud absent) alors existe = faux.

Y-a-t'il une autre méthode sans gestion des erreurs ? ou peut on se
"contenter" de cette méthode.

Exemple (fait à main levée sans test)

' ---------------------------------------------------------------------------------------------
Function NoeudExiste(TV as mscomtlib.treeview, Clé asstring) as boolean

Dim Existe as boolean
Dim Chaine as string
Dim Noeud as mscomtlib.nodes

On Error goto GestEr
chaine = tv.nodes(Clé).text
NoeudExiste=true
exit sub

:gestEr
NoeudExiste = False

end function
' -----------------------------------------------------------------------------------------------
merci pour vos conseils

Driss



Avatar
Jacques93
Bonjour Driss HANIB,
Driss HANIB a écrit :
Bonjour à tous

je voudrai savoir si un noeud, dont je connais la clé (éventuelle) existe.
je vois une méthode qui va utiliser ce noeud et ou je vais récupérer
l'éventelle erreur pour déterminer si il existe :
si'il y a erreur ( noeud absent) alors existe = faux.

Y-a-t'il une autre méthode sans gestion des erreurs ? ou peut on se
"contenter" de cette méthode.

Exemple (fait à main levée sans test)

' ---------------------------------------------------------------------------------------------
Function NoeudExiste(TV as mscomtlib.treeview, Clé asstring) as boolean

Dim Existe as boolean
Dim Chaine as string
Dim Noeud as mscomtlib.nodes

On Error goto GestEr
chaine = tv.nodes(Clé).text
NoeudExiste=true
exit sub

:gestEr
NoeudExiste = False

end function
' -----------------------------------------------------------------------------------------------
merci pour vos conseils

Driss




Essaie ceci, en enlevant ou ajoutant des commentaires sur les lignes de
codes, le truc si j'ai bien compris ta demande c'est "Nothing" :

Private Sub Command1_Click()
With Me.TreeView1
.Nodes.Add , , "Driss"
.Nodes.Add , , "Jacques"
' .Nodes.Remove ("Driss")
.Nodes.Remove ("Jacques")
If .Nodes.Count > 0 Then
If .Nodes("Driss") Is Nothing Then
MsgBox "Driss n'est plus là"
Else
MsgBox "Driss est là"
End If
Else
MsgBox "Y' a personne ?"
End If
End With
End Sub


--

Cordialement,

Jacques.
Avatar
driss hanib
Merci jacques
Donc c'est la commande Is Nothing qui suffit ?

Driss

"Jacques93" a écrit dans le message de news:

Bonjour Driss HANIB,
Driss HANIB a écrit :
Bonjour à tous

je voudrai savoir si un noeud, dont je connais la clé (éventuelle)
existe.
je vois une méthode qui va utiliser ce noeud et ou je vais récupérer
l'éventelle erreur pour déterminer si il existe :
si'il y a erreur ( noeud absent) alors existe = faux.

Y-a-t'il une autre méthode sans gestion des erreurs ? ou peut on se
"contenter" de cette méthode.

Exemple (fait à main levée sans test)

' ---------------------------------------------------------------------------------------------
Function NoeudExiste(TV as mscomtlib.treeview, Clé asstring) as boolean

Dim Existe as boolean
Dim Chaine as string
Dim Noeud as mscomtlib.nodes

On Error goto GestEr
chaine = tv.nodes(Clé).text
NoeudExiste=true
exit sub

:gestEr
NoeudExiste = False

end function
' -----------------------------------------------------------------------------------------------
merci pour vos conseils

Driss


Essaie ceci, en enlevant ou ajoutant des commentaires sur les lignes de
codes, le truc si j'ai bien compris ta demande c'est "Nothing" :

Private Sub Command1_Click()
With Me.TreeView1
.Nodes.Add , , "Driss"
.Nodes.Add , , "Jacques"
' .Nodes.Remove ("Driss")
.Nodes.Remove ("Jacques")
If .Nodes.Count > 0 Then
If .Nodes("Driss") Is Nothing Then
MsgBox "Driss n'est plus là"
Else
MsgBox "Driss est là"
End If
Else
MsgBox "Y' a personne ?"
End If
End With
End Sub


--

Cordialement,

Jacques.


Avatar
Jacques93
driss hanib a écrit :
Merci jacques
Donc c'est la commande Is Nothing qui suffit ?

Driss




En fait ça ne suffit pas, il faut tout de même gérer l'erreur si la clé
n'existe pas. Par exemple :

Function NoeudExiste(TV As MSComctlLib.TreeView, ID As String) As Boolean
On Error Resume Next
NoeudExiste = False
NoeudExiste = Not TV.Nodes(ID) Is Nothing
End Function

--

Cordialement,

Jacques.
Avatar
Driss HANIB
Ok merci

j'ai intégré cela..

Driss

"Jacques93" a écrit dans le message de news:

driss hanib a écrit :
Merci jacques
Donc c'est la commande Is Nothing qui suffit ?

Driss




En fait ça ne suffit pas, il faut tout de même gérer l'erreur si la clé
n'existe pas. Par exemple :

Function NoeudExiste(TV As MSComctlLib.TreeView, ID As String) As Boolean
On Error Resume Next
NoeudExiste = False
NoeudExiste = Not TV.Nodes(ID) Is Nothing
End Function

--

Cordialement,

Jacques.