DragonicFlash
Messages postés20Date d'inscriptiondimanche 22 juin 2003StatutMembreDernière intervention31 octobre 2006
-
28 juil. 2005 à 17:48
DragonicFlash
Messages postés20Date d'inscriptiondimanche 22 juin 2003StatutMembreDernière intervention31 octobre 2006
-
2 août 2005 à 18:52
Salut à tous !
Je suis en plein développement, et là, je suis confronté à un "pseudo" problème on va dire. Je sais comment le contourner, mais si je pouvais éviter de le contourner et plutôt de le solutionner, ce serait pas mal.
Voilà... Je crée 4 tableaux dynamiques. Avec une BDD, je remplis ces tableaux en fonction d'un SELECT CASE. A chaque fois que je remplis un tableau, je fais un REDIM PRESERVE.
Une fois ces remplissages faits, je fais d'autres traitements sur chacun de ces 4 tableaux. Vu que le remplissage précédent se fait par un SELECT CASE, certains de ces tableaux peuvent ne pas être remplis, et donc de ce fait, ne pas être dimensionné... Alors forcément, si je fais un traitement sur un tableau qui finalement est déclaré mais qui n'existe pas, ça part en erreur...
Actuellement, pour contourner le problème, je fais par défaut un DIM de 1 élement pour chacun de ces tableaux, et si un tableau(0) est égal à NULL (ce sont des tableaux de Integer), je sais que mon tableau n'existe pas...
Donc pour abréger (LOL), je voudrais savoir s'il existe une fonction permettant de dire si un tableau déclaré dynamiquement a été dimensionné ou pas. Ce serait plus propre. Maintenant, s'il n'y a pas de solution, tant pis, je resterai comme ça. Mais je trouve que ça fait un peu poporc. J'avais choisi les tableaux dynamiques pour justement ne pas prendre de place quand j'en avais pas besoin.
Merci à vous tous !!
A voir également:
Comment savoir si un tableau dynamique est dimensionné ?
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 28 juil. 2005 à 18:10
un solution comlète, comme tu l'espères, pas à ma connaissance.
ta solution 'poporc" ne l'est pas tant que çà, et à le mérite d'être rapide.
si tu veux une version "plus officielle", çà serait de faire une gestion d'erreur
Dim Montablo1() as String, Montablo2() as String, Montablo3() as String, Montablo4() as String
Dim WhichErr as String
Dim Temp as Integer
On Error Goto ERRTABLEAU
WhichErr="MonTablo1"
Temp = Ubound(MonTablo1)
WhichErr="MonTablo2"
Temp = Ubound(MonTablo2)
WhichErr="MonTablo3"
Temp = Ubound(MonTablo3)
WhichErr="MonTablo4"
Temp = Ubound(MonTablo4)
On Error Goto 0 'fin de gestion d'erreur
Temp=""
MsgBox "Les 4 tableaux sont OK", 32, "***"
Exit Sub
ERRTABLEAU :
MsgBox "Une erreur est survenue sur " & chr(34) & WichErr & chr(34), 32, "***"
Exit Sub
là tu as une gestion propre. à toi de voir l'utilité
DragonicFlash
Messages postés20Date d'inscriptiondimanche 22 juin 2003StatutMembreDernière intervention31 octobre 2006 2 août 2005 à 18:52
Bonsoir !!
Merci à tous pour vos réponses, c'est super sympa. Et spécial thank à Gobillot pour ce code "tout bête" qui permet de faire ce que j'attendais. Je faisais "not tableau" qui ne marchait pas, mais effectivement, "not (not tableau)", ça passe !