OVH Cloud OVH Cloud

Vie d un tableau

4 réponses
Avatar
RV
Bonjour,
Toujours dans mes tableaux, j'aimerais savoir si un=20
tableau est vide (ou existe).
If (MonTableau Is Nothing) Then ...
If Exists(MonTableau) Then ...
If IsNull(MonTableau) Then ...
If (MonTableau) Then ...
If (Ubound(MonTableau) > 0) Then ...

Sachant qu'il est juste d=E9clar=E9 en d=E9but de Form (Dim=20
MonTableau() as tMonType)

Rien qui marche dans tout ca.
Une petite aide ...
Merci
RV

4 réponses

Avatar
Zoury
Voici une fonction qui sit ce concept.. c'est juste plus réutilisable :
'***
Private Function IsArrayBounded(ByVal v As Variant) As Boolean
On Error Resume Next
v = UBound(v)
IsArrayBounded = (Err.Number <> 9 And Err.Number <> 13)
End Function
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Christophe" <geo.ch@(wormfuck)tiscali.fr> a écrit dans le message de
news:causo8$kb0$
Salut,

il y a un article de la FAQ à ce sujet.

Il faut et il suffit d'intercepter l'erreur recupérable

Dim Myarray() as long
dim Taille&
.....

On error resume next 'sur erreur execute l'instruction suivante
Err.clear 'clean l'obj erreur

Taille&=ubound(myarray) 'ligne provoquant une erreur si myarray non


défini
if err.number<> 0 then
on error goto 0
'le tableau n'a pas de dimension
else
on error goto 0
'le tableau existe
end if

christophe

"RV" a écrit dans le message de news:
1e82501c4553b$73239640$
Bonjour,
Toujours dans mes tableaux, j'aimerais savoir si un
tableau est vide (ou existe).
If (MonTableau Is Nothing) Then ...
If Exists(MonTableau) Then ...
If IsNull(MonTableau) Then ...
If (MonTableau) Then ...
If (Ubound(MonTableau) > 0) Then ...

Sachant qu'il est juste déclaré en début de Form (Dim
MonTableau() as tMonType)

Rien qui marche dans tout ca.
Une petite aide ...
Merci
RV




Avatar
Christophe
Salut,

il y a un article de la FAQ à ce sujet.

Il faut et il suffit d'intercepter l'erreur recupérable

Dim Myarray() as long
dim Taille&
.....

On error resume next 'sur erreur execute l'instruction suivante
Err.clear 'clean l'obj erreur

Taille&=ubound(myarray) 'ligne provoquant une erreur si myarray non défini
if err.number<> 0 then
on error goto 0
'le tableau n'a pas de dimension
else
on error goto 0
'le tableau existe
end if

christophe

"RV" a écrit dans le message de news:
1e82501c4553b$73239640$
Bonjour,
Toujours dans mes tableaux, j'aimerais savoir si un
tableau est vide (ou existe).
If (MonTableau Is Nothing) Then ...
If Exists(MonTableau) Then ...
If IsNull(MonTableau) Then ...
If (MonTableau) Then ...
If (Ubound(MonTableau) > 0) Then ...

Sachant qu'il est juste déclaré en début de Form (Dim
MonTableau() as tMonType)

Rien qui marche dans tout ca.
Une petite aide ...
Merci
RV
Avatar
Vincent Guichard
RV a écrit :
Bonjour,
Toujours dans mes tableaux, j'aimerais savoir si un
tableau est vide (ou existe).
If (MonTableau Is Nothing) Then ...
If Exists(MonTableau) Then ...
If IsNull(MonTableau) Then ...
If (MonTableau) Then ...
If (Ubound(MonTableau) > 0) Then ...

Sachant qu'il est juste déclaré en début de Form (Dim
MonTableau() as tMonType)

Rien qui marche dans tout ca.
Une petite aide ...
Merci
RV



Dim ub As Long
On Error Resume Next
Let ub = Ubound(MonTableau)
if err.number = 9 then
'MonTableau n'est pas initialisé
else
'MonTableau est initialisé
endif
On Error GoTo 0

Vincent Guichard
Avatar
RV
Merci à tous pour vos réponses. C'est pile poil ce sur
quoi je butais.
Bon WE
RV