Nombre d'éléments dans un tableau ???

vbMarco Messages postés 10 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 25 avril 2003 - 6 févr. 2003 à 17:40
vbMarco Messages postés 10 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 25 avril 2003 - 7 févr. 2003 à 15:12
Héhé

La réponse n'est pas aussi simple que UBOUND(NomTableau).
Pourquoi!?

Bien parce ce tableau ne contient pas toujours des données, il arrive parfois que le tableau soit vide.

Et qu'est-ce qui se passe vous pensez quand le tableau est effectivement vide!? Bien avec l'emploi de UBOUND bien ça plante à tout coup! :-)

Maintenant mon problème bien expliqué, j'aimerais savoir s'il y en a parmis vous qui ont des solutions pour moi!

Merci beaucoup!

vbMarco
@+

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 févr. 2003 à 18:27
Salut vbMarco
Après avoir mis quelques minutes à déchiffrer ton français par facile à lire :

- UBound renvoie le nombre d'éléments dans un tableau, et c'est vrai que le UBound d'un tableau qui ne contient pas de données renverra quand même le nombre d'éléments
- Par contre, ce n'est pas normal que ton rogramme "plante" quand tu utilises UBound d'un tableau vide !
- Pour connaitre le nombre de datas non vide contenues dans ton tableau, il te faut les compter :

Dim r as Long, Nbre as Long
Nbre = 0
For r = LBound(Tableau) to UBound(Tableau)
If not Tableau(r) isnull and Tableau(r) <> "" then _
Nbre = Nbre + 1
Next r

Vala
Jack
0
vbMarco Messages postés 10 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 25 avril 2003
6 févr. 2003 à 19:12
Salut Jack!

Merci pour la réponse.

Mon français n'est pas si mal que ça je crois, malgré le fait que je ne vienne pas de la France, mais du Québec.

Effectivement, je me suis peut-être mal exprimé.
Mon tableau est dynamique est n'est pas toujours dimensionné.

Donc UBound et LBound ne fonctionnent pas pour moi.

Si tu es septique, essais ce qui suit

Dim unTableau() As Integer
MsgBox LBound(unTableau)

Je dois trouver un moyen de contourner ce problème.

Merci beaucoup.

Marco
@+
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 févr. 2003 à 00:25
Le moyen est simple : Dans ta Form_Load, tu fais un premier dimensionnement :
Redim unTableau(0) as Integer
et quand tu as besoin de modifier sa taille :
Redim Preserve unTableau(x) as Integer

Jack
0
vbMarco Messages postés 10 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 25 avril 2003
7 févr. 2003 à 15:12
Merci Jack d'essayer de résoudre mon problème contre vent et marée!

Je cherchais simplement une façon de savoir si justement le tableau contient quelque chose, mais semblerait que non...

En attendant, je vais continuer d'utiliser la même procédure ou presque que celle que tu as décrite plus haut!

Merci et bonne chance!

Marco
@+
0
Rejoignez-nous