Déclaration de variable

Résolu
pifranl Messages postés 9 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 1 avril 2007 - 4 mars 2007 à 11:56
pifranl Messages postés 9 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 1 avril 2007 - 4 mars 2007 à 17:48
Bonjour,

Je voudrais juste poser une petite question qui bloque l'avancée de mon programme. En fait, mon programme demande à l'utilisateur de rentrer des valeurs dans un tableau. Ces valeurs peuvent être numériques ou des inconnues du type ( x,y,z ). Mon programme établit des relations entre les inconnues et les données du problèmes et doit résoudre ces équations. Le problème est le suivant: si je déclare le contenu des tableaux en tant que INTEGER, le prog bloque lorsque l'on rentre des inconnues ( ex: x ). En revanche si je déclare les contenus des tableaux en tant que STRING, je ne peut plus effectuer de calculs sur ces inconnues. Comment dois-je déclarer les tableaux ? Si cela n'est pas possible, comment puis-je procéder pour résoudre ce problème ?

Merci.

Pierre-François

6 réponses

pifranl Messages postés 9 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 1 avril 2007
4 mars 2007 à 16:29
Désolé de t embeter encore. Désormais je vois exactement ce que tu veux dire mais j'arrive pas à faire ce que j'ai envi. En entrant le programme suivant...

Private Sub Command1_Click()
Dim val1, val2, resultat As String
val1 = InputBox("val1")
resultat = Val(val1) * 2
MsgBox ("resultat" & resultat)
End Sub

...je voudrais pouvoir entrer dans val1 : x et que le résultat soit 2x et non pas être obligé de donner une valeur numérique obligatoirement.
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
4 mars 2007 à 16:37
C'est plus complexe qu'il n'y parait, il faut concaténer, et gérer le numéric, regarde mon exemple (attention à tes déclarations, seul resultat est de type String..)

Private Sub Command1_Click()
    Dim val1 As String, val2 As String, resultat As String

val2 = "2"
val1 = InputBox("val1")

If IsNumeric(val1) Then
    resultat = Val(val2) * Val(val1)
Else
    resultat = val2 & val1
End If

MsgBox ("resultat : " & resultat)

End Sub

~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
3
pifranl Messages postés 9 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 1 avril 2007
4 mars 2007 à 17:48
Merci beaucoup, c'est bon ca fonctionne. Mille merci..

@+

Pierre-François
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
4 mars 2007 à 12:18
Salut,

utilise le type string, regarde cet exemple :

Sub exemple()
    Dim Val1 As String, Val2 As String
    
Val1 = "13.2"
Val2 = "12.3"

MsgBox IsNumeric(Val1) 'retourne vrai
MsgBox Val(Val1) + Val(Val2) 'retourne 25.5

End Sub


~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pifranl Messages postés 9 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 1 avril 2007
4 mars 2007 à 14:19
Je viens d'essayer ce que tu as proposé mais j'ai toujours un problème.
Pour être plus précis:
'Je déclare deux tableaux:
Dim T1(3,2),T2(3,2)  As ?
'Dans ces deux tableaux je demande à l'utilisateur de rentrer dans le tableau 1 des données ( sous forme numériques
donc plutot du type INTEGER ) et dans le second l'utilisateur rentre des variables dont il ne connait pas la valeur:
il rentre donc des lettres.

Le but est resoudre les 6 équations suivantes:
2*T2(i,j)=T1(i,j) + 2

La déclaration en tant que STRING fonctionne-t-elle ?

J'espere avoir été plus précis.

P.S.: Peut être ai-je mal compris ce que tu m'as expliqué en tout cas merci déjà pour ta réponse.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
4 mars 2007 à 15:58
Si tu déclares tes tableaux en String, (Dim T1(3, 2) As String), utilises Val devant cette valeur :
2 * Val(T2(i, j)

Pour ton équations, t'auras des inversions comme en maths à faire (déplacer les éléments connus d'un côté du signe égal, et les éléments inconnus de l'autre) pour déterminer les inconnus.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
Rejoignez-nous