Subscript out of range ??? SVP vous pouvez me dire pourquoi?

Résolu
f bnkcm
Messages postés
57
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
6 septembre 2006
- 30 avril 2005 à 23:32
f bnkcm
Messages postés
57
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
6 septembre 2006
- 1 mai 2005 à 11:21
Salut tous,
J'aimerai que vous me dites pourquoi on me renvoit l'erreur suivante:
"Run time '9' Subscript out of range"

Le code que j'execute est le suivant:
ch = "ma chaine de caractères séparée par des virgules où y a au début un nombre donné"
nbr = "un nombre donné"
Dim var() As String
var = Split(ch, ",")
If time - var(0) <= 6 Then
etc...

Quand je pointe sur "var(0)" ça me donne ceci:
"var(0)=<Subscript out of range>"

Merci
++

4 réponses

cs_Stephane
Messages postés
550
Date d'inscription
vendredi 5 janvier 2001
Statut
Membre
Dernière intervention
23 septembre 2006

1 mai 2005 à 00:22
SAlut



je pense que puisqu'il n'y a pas de ' , ' dans ta chaine, var est
null, enfin n'a pas de dimension, et donc tu est hors intervalle avec
le 0



pour verifier, si la chaine contient une virgule, tu peux utiliser

if instr(1,chaine,",") then 'il y a une virgule


A+



<hr size="2" width="100%">Utilisateurs du forum : Merci de lire http://www.vbfrance.com/forum.v2.aspx?ID=445871

<hr size="2" width="100%">
3
cs_CanisLupus
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
13 mars 2006
18
1 mai 2005 à 10:58
Salut,

Si tu déclares var() dans ta proc, le timer ne la connait pas. Ou alors, tu lances le timer avant le split ? Ou ta chaine ne contient rien ou que des virgules ?

Autre chose, ta chaine, si j'ai bien compris, ne contient que des nombres séparés par des virgules sinon time - var(0) donnerait une erreur d'exécution 13. Mais méfie-toi des conversions implicites.

Loup Gris
3
f bnkcm
Messages postés
57
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
6 septembre 2006

1 mai 2005 à 11:21
Salut et merci pour votre aide, je croix trouver pourquoi ça donne cette erreur, vous m'avez donné l'idée; je croix que c'est pas parce que je lance le timer avant le split mais parfois quand le timer est lancé y a un retard pour charger la chaine "ch" donc rien à "spliter" et alors une valeur null pour var(0) c'est le cas aussi pour la variable time!
Merci encore pour votre aide, je vais maintenant voir comment avoir ces variable avant le timer c'est peut être la solution.
++
3
f bnkcm
Messages postés
57
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
6 septembre 2006

1 mai 2005 à 00:35
Merci pour votre réponse, en fait la chaine contient des virgules, au début le code s'exécute parfaitement mais à un certain moment, j'utilise un timer, ça donne l'erreur que j'ai cité. Je me demande pourquoi?!
++
0