OVH Cloud OVH Cloud

Opérateurnon utilisable ds un tableau

2 réponses
Avatar
JM Charrier
Bonjour,

J'ai un tableau de variants où j'ai stocké des valeurs numériques et des
opérateurs (plus : "+", moins "-",...)

J'aimerais ensuite pouvoir utiliser ces opérateurs dans un calcul du style :
Total = Cint(T(i)) & t(i+1) & Cint(t(i+2))

T(i) et t(i+2) sont des nombres que je convertis en entier mais je n'arrive
pas utiliser t(i+1) ?
Pas de fonction de conversion pour les opérateurs donc comment lui faire
comprendre que c'est un opérateur et qu'il doit faire un calcul ?

Merci de votre aide,
Pirlouit

2 réponses

Avatar
Eric
Bonjour,

Il faut que tu utilises la fonction Eval().

Exemple simple:
Option Compare Database
Option Explicit
Option Base 1
Sub zz()
Dim i As Integer, j As Integer
Dim t(5, 3)
For i = 1 To 5
t(i, 1) = i
t(i, 2) = IIf(i Mod 2 = 0, "+", "-")
t(i, 3) = 2 * i
Next i
For i = 1 To 5
For j = 1 To 3
Debug.Print t(i, j),
Next j
Debug.Print Eval(t(i, 1) & t(i, 2) & t(i, 3))
Next i
End Sub

Sortie: la derniere colonne donne la valeur retournée par Eval(...)
1 - 2 -1
2 + 4 6
3 - 6 -3
4 + 8 12
5 - 10 -5

Bonjour,

J'ai un tableau de variants où j'ai stocké des valeurs numériques et des
opérateurs (plus : "+", moins "-",...)

J'aimerais ensuite pouvoir utiliser ces opérateurs dans un calcul du style :
Total = Cint(T(i)) & t(i+1) & Cint(t(i+2))

T(i) et t(i+2) sont des nombres que je convertis en entier mais je n'arrive
pas utiliser t(i+1) ?
Pas de fonction de conversion pour les opérateurs donc comment lui faire
comprendre que c'est un opérateur et qu'il doit faire un calcul ?

Merci de votre aide,
Pirlouit




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
JMC
C'est parfait !

Merci

"Eric" a écrit dans le message de
news:%
Bonjour,

Il faut que tu utilises la fonction Eval().

Exemple simple:
Option Compare Database
Option Explicit
Option Base 1
Sub zz()
Dim i As Integer, j As Integer
Dim t(5, 3)
For i = 1 To 5
t(i, 1) = i
t(i, 2) = IIf(i Mod 2 = 0, "+", "-")
t(i, 3) = 2 * i
Next i
For i = 1 To 5
For j = 1 To 3
Debug.Print t(i, j),
Next j
Debug.Print Eval(t(i, 1) & t(i, 2) & t(i, 3))
Next i
End Sub

Sortie: la derniere colonne donne la valeur retournée par Eval(...)
1 - 2 -1
2 + 4 6
3 - 6 -3
4 + 8 12
5 - 10 -5

Bonjour,

J'ai un tableau de variants où j'ai stocké des valeurs numériques et des
opérateurs (plus : "+", moins "-",...)

J'aimerais ensuite pouvoir utiliser ces opérateurs dans un calcul du
style :


Total = Cint(T(i)) & t(i+1) & Cint(t(i+2))

T(i) et t(i+2) sont des nombres que je convertis en entier mais je
n'arrive


pas utiliser t(i+1) ?
Pas de fonction de conversion pour les opérateurs donc comment lui faire
comprendre que c'est un opérateur et qu'il doit faire un calcul ?

Merci de votre aide,
Pirlouit




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr