Si Ubound(tablo,1) retourne 0, c'est qu'il y a une ligne dans le tableau
Mais si il n'y a aucune ligne, il retourne quoi, car j'arrive pas a le voir
ca !
on error resume next i=ubound(tableau) if err.number then msgbox "tableau vide") ... else ... end if
ng
Salut, Il retourne 'Indice en dehors de la plage (erreur 9)' car le tableau n'est pas définit, on peut donc créer une fonction pour savoir si un tableau est vide ou non :
Private Sub Form_Load() Dim sTbl() As String If EstTableauVide(sTbl) Then Debug.Print "sTbl est vide !" Else Debug.Print "sTbl comporte " & UBound(sTbl) & " éléments !" End If End Sub
Public Function EstTableauVide(tbl() As String) As Boolean On Error Resume Next Dim lTest As Long lTest = UBound(tbl) EstTableauVide = (Err.Number = 9) Err.Clear End Function
Nicolas. "Jean-Michel" a écrit dans le message de news:
Bonjour,
Si Ubound(tablo,1) retourne 0, c'est qu'il y a une ligne dans le tableau Mais si il n'y a aucune ligne, il retourne quoi, car j'arrive pas a le
voir
ca !
Merci !
Salut,
Il retourne 'Indice en dehors de la plage (erreur 9)' car le tableau n'est
pas définit, on peut donc créer une fonction pour savoir si un tableau est
vide ou non :
Private Sub Form_Load()
Dim sTbl() As String
If EstTableauVide(sTbl) Then
Debug.Print "sTbl est vide !"
Else
Debug.Print "sTbl comporte " & UBound(sTbl) & " éléments !"
End If
End Sub
Public Function EstTableauVide(tbl() As String) As Boolean
On Error Resume Next
Dim lTest As Long
lTest = UBound(tbl)
EstTableauVide = (Err.Number = 9)
Err.Clear
End Function
Nicolas.
"Jean-Michel" <jeneveuxpasdespam_coconuts@genial.net> a écrit dans le
message de news: OSMiZWSqDHA.1928@TK2MSFTNGP12.phx.gbl...
Bonjour,
Si Ubound(tablo,1) retourne 0, c'est qu'il y a une ligne dans le tableau
Mais si il n'y a aucune ligne, il retourne quoi, car j'arrive pas a le
Salut, Il retourne 'Indice en dehors de la plage (erreur 9)' car le tableau n'est pas définit, on peut donc créer une fonction pour savoir si un tableau est vide ou non :
Private Sub Form_Load() Dim sTbl() As String If EstTableauVide(sTbl) Then Debug.Print "sTbl est vide !" Else Debug.Print "sTbl comporte " & UBound(sTbl) & " éléments !" End If End Sub
Public Function EstTableauVide(tbl() As String) As Boolean On Error Resume Next Dim lTest As Long lTest = UBound(tbl) EstTableauVide = (Err.Number = 9) Err.Clear End Function
Nicolas. "Jean-Michel" a écrit dans le message de news:
Bonjour,
Si Ubound(tablo,1) retourne 0, c'est qu'il y a une ligne dans le tableau Mais si il n'y a aucune ligne, il retourne quoi, car j'arrive pas a le
voir
ca !
Merci !
Zoury
ou encore
<non testé> '*** ' Module1 Option Explicit
Private Sub Main()
Dim l() As Long Debug.Print Not Not l ' False
ReDim l(0 To 10) As Long Debug.Print Not Not l ' True
End Sub '***
Cette technique, bien que très tentante, se base sur un fonctionnement peu habituel de VB. Les prochains ServicePack (SP6 bientot.. a quand les autres..? je doute qu'il y en ait) pourraient très bien modifier ce fonctionnement inhabituel. J'opterais donc pour une fonction qui trap "l'erreur" comme t'a montré Nicolas.
Il est également possible d'aller lire directement dans la structure interne du tableau en mémoire (SAFEARRAY) :
How to Determine if an Array has been Dimensioned http://www.mvps.org/vbnet/code/helpers/isbounded.htm
Merci de poster les réponses au groupe afin d'en faire profiter à tous "Jean-Michel" wrote in message news:
Bonjour,
Si Ubound(tablo,1) retourne 0, c'est qu'il y a une ligne dans le tableau Mais si il n'y a aucune ligne, il retourne quoi, car j'arrive pas a le
voir
ca !
Merci !
ou encore
<non testé>
'***
' Module1
Option Explicit
Private Sub Main()
Dim l() As Long
Debug.Print Not Not l ' False
ReDim l(0 To 10) As Long
Debug.Print Not Not l ' True
End Sub
'***
Cette technique, bien que très tentante, se base sur un fonctionnement peu
habituel de VB. Les prochains ServicePack (SP6 bientot.. a quand les
autres..? je doute qu'il y en ait) pourraient très bien modifier ce
fonctionnement inhabituel. J'opterais donc pour une fonction qui trap
"l'erreur" comme t'a montré Nicolas.
Il est également possible d'aller lire directement dans la structure interne
du tableau en mémoire (SAFEARRAY) :
How to Determine if an Array has been Dimensioned
http://www.mvps.org/vbnet/code/helpers/isbounded.htm
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Jean-Michel" <jeneveuxpasdespam_coconuts@genial.net> wrote in message
news:OSMiZWSqDHA.1928@TK2MSFTNGP12.phx.gbl...
Bonjour,
Si Ubound(tablo,1) retourne 0, c'est qu'il y a une ligne dans le tableau
Mais si il n'y a aucune ligne, il retourne quoi, car j'arrive pas a le
ReDim l(0 To 10) As Long Debug.Print Not Not l ' True
End Sub '***
Cette technique, bien que très tentante, se base sur un fonctionnement peu habituel de VB. Les prochains ServicePack (SP6 bientot.. a quand les autres..? je doute qu'il y en ait) pourraient très bien modifier ce fonctionnement inhabituel. J'opterais donc pour une fonction qui trap "l'erreur" comme t'a montré Nicolas.
Il est également possible d'aller lire directement dans la structure interne du tableau en mémoire (SAFEARRAY) :
How to Determine if an Array has been Dimensioned http://www.mvps.org/vbnet/code/helpers/isbounded.htm