michel120147
Messages postés17Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention 9 août 2006
-
25 juin 2006 à 14:11
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
25 juin 2006 à 17:44
Bonjour,
j'ai la boucle suivante et j'ai sytématiquement une erreur qui dit que la valeur ne peut pas être
convertie en "integer". Je précise que "enreg.num" est string. Le but de cette boucle est de récupérer les chiffres qui sont contenus dans "num". (et je ne connais ni la position, ni la longueur de la chaine numérique)
voici l'erreur qui se produit dans le "If" : La conversion de la chaîne "1392A" en type 'Integer' n'est pas valide
dim mot,num as string
For i = 2 To indexmax
Avance.Value = i
FileGet(nfich, enreg, i) mot " " : num Trim(enreg.num)
For j = 1 To Len(enreg.num)
Try
If Asc(Mid(j, num, 1)) >= 48 And Asc(Mid(j, num, 1)) <= 57 Then
mot = mot + Chr(Asc(Mid(j, num, 1)))
End If
Catch ex As ArgumentException
End Try
Next
Qui peut me dire pourquoi cette conversion que je ne demande pas ??
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 25 juin 2006 à 14:41
Quelle est la valeur de j et la longueur de num au moment de l'erreur ?
A mon avis ton erreur viendrait plutot de là :
mot " " : num Trim(enreg.num)
For j = 1 To Len(enreg.num)
Tu parcourt ta chaine num mais selon la longueur de enreg.num. Hors si enreg.num contient des espaces, ta chaine num sera plus courte, les espaces ayant été supprimés. Dans ce cas Mid doit te renvoyer une erreur.
Alors soit tu fait Len(num), soit tu laisse tomber num et tu traite directement enreg.num : Mid(j,enreg.num,1)