Indice en dehors de la plage.....help

ecranbleu27 Messages postés 190 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 29 avril 2009 - 2 avril 2007 à 18:51
ecranbleu27 Messages postés 190 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 29 avril 2009 - 3 avril 2007 à 05:41
bjr
j'ai un soucis "erreur 9 indice en dehors de la plage"....
sur ma machine ou j' ai vb6, je n'ai pas d'erreur
lorsque j'installe le prog sur la deuxieme machine, j'ai l'erreur.

je suppose que cela vient de cette partie de mon code,
(plus de ce qui est en bleu, car avant je ne l'avais pas encore programmé et je n'avais pas d'erreur....)
ou je fais une somme d'heures , avec plusieurs moyennes :

atab est déclaré en string
heure et minute en integer
j'ai mis une gestion d'erreur qui me dis  bien que ca se passe par là.....


<hr />

Set AdoStatS = New ADODB.Recordset
    strSQL = "SELECT  * FROM  sortie "
    AdoStatS.Open strSQL, cnn, adOpenDynamic, adLockOptimistic, adCmdText
 
 
  If AdoStatS.RecordCount = 0 Then Exit Sub
  With AdoStatS
  While Not (.EOF)
  X = .Fields(3)



           filteredExpression = replaceMinutesByCents(Replace(X, ",", "."))
           If cEval.Evaluate(Replace(filteredExpression, BASE10_SYMBOL, "")) <> "" Then
              result = cEval.Evaluate(Replace(filteredExpression, BASE10_SYMBOL, ""))
             sommecolonne = sommecolonne + result
             Else
             TxtR(4) = ""
           End If
            .MoveNext
 Wend
            
            VAR2 = Format(Int(sommecolonne) + (sommecolonne - Int(sommecolonne)) * 0.6, "0.00")
            ATAB = Split(VAR2, ".")
            HEURE = HEURE + Val(ATAB(0))
            MINUTE = MINUTE + ATAB(1)            If MINUTE 6 Then VAR2 (HEURE + 1)
           
            TxtR(4) = Format(VAR2, "0.00")
            TxtR(4).Visible = True
           
            AdoStatS.Resync
'MOYENNE PAR SORTIES
sommecolonne = "0"
result = "0"
HEURE = "0"
MINUTE = "0"
Y = VAR2 / TxtR(0)
X = Format(Y, "0.00")
    ATAB = Split(X, ".")
            HEURE = Val(ATAB(0))
            MINUTE = MINUTE + ATAB(1)
            MINUTE = MINUTE / 1.66666666666667
                TxtR(3) = Format((HEURE + (MINUTE / 100)), "0.00")
                             
     






<hr />merci d'avance

17 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 avril 2007 à 19:02
Tu fais un split sur un séparateur décimal qui risque de ne pas être présent dans 2 cas de figure :

1) cas d'une machine dont la localisation est telle qu'un autre séparateur que le tien est utilisé
2) cas d'un nombre entier (mais non car je vois que tu formates à 2 décimales avant le split)

si le séparateur (le tien) n'est pas trouvé (localisation différente) , le tableau résultant de ton split n'a qu'un seul élément (0) et l'élément (1) est donc hors limites de ton tableau !
0