Message d'erreur à cause d'un "CInt"

johann91 Messages postés 46 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 21 juillet 2006 - 2 juin 2006 à 15:48
johann91 Messages postés 46 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 21 juillet 2006 - 4 juin 2006 à 09:25
Bonjour à tous, en exécutant mon script sur ma machine, j'obtiens ce message d'erreur :

Line (212):
"                       
Minute=CInt(NowTab(1))".

Description: Type mismatch: 'CInt'.

Pourtant, en exécutant le même script sur une autre machine, tout
se passe impeccable. Donc apparemment, ma première machine ne connaît
pas la commande CInt. Je suppose qu'il y a quelque chose à paramétrer
comme une variable d'environnement ou autre, mais je ne sais pas quoi
exactement. J'ai recherché sur le net, je n'ai rien trouvé de
concluant. Quelqu'un aurait-il une idée svp ? (mes 2 pc tournent sous
xp pro).


Merci d'avance !

3 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 juin 2006 à 17:34
Bonjour,


L'erreur semble plutôt affirmer que NowTab(1) n'est pas un entier valide.

Pour regarder ce que c'est, tu peux placer un "MsgBox NowTab(1)" pour avoir si un entier correcte apparaît.


Tu peux peut être essayer d'nelever le CInt ! C'est du vbscript, alors le typage...
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 juin 2006 à 17:41
"Une variable d'environnement à paramètrer ????"

Qu'est-ce qui te fait dire ça ? Ce n'est pas une conclusion qui vient de suite à l'esprit pour ce genre de bug.

Effectivement le problème vient d'une variable d'environnement de Windows, du séparateur décimal plus precisément.

Ta variable NowTab(1) contient un nombre décimal sous forme de chaine de caractère, dans lequel le séparateur décimal est le point.Le séparateur décimal configuré dans Windows (Panneau de config/Option régionnales et lnguistiques) est la virgule.
Dans ce cas CInt ne reconnais que la virgule comme séparateur. Donc quand tu présente ton nombre avec le point, Cint bugge.

Sur le PC où ça marche, tu dois surrement avoir le point comme séparateur. Effectivement dans ce cas Cint reconnais aussi bien le point que la virgule comme séparateur (merci microsoft).

Plusieurs solutions :
- configurer Windows avec le point (pas forcement pratique pour le déploiement)
- filtrer les nombres avec le point si c'est la virgule qu'il faut
- Utiliser une autre fonction pour la convertion comme Val() mais qui peut aussi ammener des bugs dans certains cas si mes souvenirs sont bons.

Perso j'utilise le filtrage des nombres quand il ne m'est pas possible de maitriser la configuration de Windows.

0
johann91 Messages postés 46 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 21 juillet 2006
4 juin 2006 à 09:25
Merci de vos réponses. rt15, mon NowTab(1) est bien un entier valide. Comme je le disais, mon script tourne parfaitement sur un PC mais pas sur l'autre.

Casy, pourquoi je pensais que ça pouvait être une variable d'environnement ? Parce que
 - Le script tournait parfaitement sur un ordi et pas sur l'autre, donc le problème venait de l'ordi et non de mon script.
 - A part les problèmes de CInt, mon script tournait sur les 2 ordis, donc les composantes windows permettant d'éxécuter des scripts VBS étaient bien présents.

Donc le problème venait d'autre part. Et comme j'avais eu juste avant des problèmes de variables d'environnement avec le JDK, je me suis dit que mon problème était peut-être du même ordre !

Ton explication sur les séparateurs décimaux me semble pertinente, surtout que j'ai un PC configuré en Français, et l'autre avec les paramètres américains, et mon script tourne sur le français. La seule chose qui m'étonne, c'est que mon NowTab(1) est censé être un entier et non un décimal. J'ai rajouté le CInt car sans lui, j'avais une erreur de type de variable non compatible.

Encore merci pour vos réponses, je vous dirai si vos explications ont résolu mon problème mardi, quand je serai au boulot !!
0
Rejoignez-nous