matteli
Messages postés38Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention14 mars 2007
-
6 mars 2007 à 17:48
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
21 mars 2007 à 09:50
Salut,
J'utilise le code classique suivant :
For i = 1 to Ubound (tableau)
...
next i
J'ai une erreur (normal) si le tableau est dynamique et qu'il n'a pas été dimensionné.
Quelle commande permet de savoir si un tableau dynamique a été dimensionné ?
matteli
Messages postés38Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention14 mars 2007 7 mars 2007 à 16:14
Ouh là, quand j'utilise la méthode de PCPT, j'ai une erreur "Expression trop complexe" qui apparait à un autre endroit du programme qui n'a rien à voir.
Je précise que j'utilise cette méthode pour un type perso :
If (Not (Not (Fenetre(i).Onglet(j).Etiquette)) 0) False Then
For k = 1 To UBound(Fenetre(i).Onglet(j).Etiquette)
AfficheLabel Fenetre(i).Onglet(j).Etiquette(k).Label, i
Next k
End If
L'erreur arrive sur un :
scale.x=scaling_image
qui n'a rien à voir avec la méthode ci-dessus.
matteli
Messages postés38Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention14 mars 2007 7 mars 2007 à 16:34
Tout compte fait je vais utiliser la méthode de Gobillot adapté à ma façon.
Cet exemple fonctionne si dans la boucle, il n'y a que des lignes contenant une référence à mon tableau non dimensionné.
On error resume next
for i = 1 to ubound(tab)
fonction tab(i)
next i
On error goto 0
matteli
Messages postés38Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention14 mars 2007 7 mars 2007 à 16:57
Pffff, j'ai l'impression que dans une même routine, il ne peut y avoir 2 fois :
On error goto 10
A la première erreur, il va bien à 10 mais à la 2ème, il y a erreur.
Décidement, c'est un peu compliqué.
Je crois que je vais revenir à la méthode du début avec une déclaration obligatoire à partir de 0 et une utilisation à partir de 1. Ca me parait la méthode la plus propre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 7 mars 2007 à 19:52
oui c'est vrai, j'avais déjà que l'erreur pouvait revenir n'importe où
on peut la supprimer en utilisant une instruction du genre Clear ou Refresh (juste après et pas avant)
à utiliser avec parcimonie ???
pour ta gestion d'erreur, il faut fair un Resume sinon le gestionnaire d'erreur est toujours en cours
avec Resume Next le Resume est déjà fait et c'est plus simple
attention aux boucles:
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 21 mars 2007 à 09:50
Concernant le not not tableau qui semble avoir des effets de bords...
Il semblerait que les erreurs se produisent en débogage dans l'IDE,
quand on compile vers du pseudo code... mais pas quand on compile vers
du natif.
Si on désassemble le code natif :
mov eax, dword ptr [ebp - 20]
add esp, 14
test eax, eax
je ...
Une petite remarque, si on met un entier à la place du tableau, et qu'on
l'affecte en dur dans le code, le compilo ne compile pas le if. Du
grand art. On se croirait en C. Si on l'affecte via une InputBox par
exemple, on tombe là dessus :