Vb déja fait mais érreure imposible a détecté
Fermé
glimor
-
8 nov. 2008 à 21:09
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 nov. 2008 à 00:40
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 nov. 2008 à 00:40
A voir également:
- Vb déja fait mais érreure imposible a détecté
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Usb non detecté - Guide
- Un hyperviseur a été détecté. les fonctionnalités nécessaires à hyper-v ne seront pas affichées. - Windows 11
- Écran détecté mais pas de signal ✓ - Forum Matériel & Système
7 réponses
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
121
8 nov. 2008 à 21:17
8 nov. 2008 à 21:17
Slt,
Si j'ai pas encore oublié: inbox retourne une chaine de caractère, donc il faut récuerer le tout dans des chaines puis faire la conversion:
dim intNote1, intNote2, intNote3, intCoeff1, intCoeff2, intCoeff3 as Integer
dim strNote1, etc etc as String
strNote1 = Inbox("Saisir Note1:")
intNote1 = CInt(strNote1)
Et même pendant le calcul vous avez mélangé des int et des string.
BonCourage.
Si j'ai pas encore oublié: inbox retourne une chaine de caractère, donc il faut récuerer le tout dans des chaines puis faire la conversion:
dim intNote1, intNote2, intNote3, intCoeff1, intCoeff2, intCoeff3 as Integer
dim strNote1, etc etc as String
strNote1 = Inbox("Saisir Note1:")
intNote1 = CInt(strNote1)
Et même pendant le calcul vous avez mélangé des int et des string.
BonCourage.
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
121
8 nov. 2008 à 21:34
8 nov. 2008 à 21:34
Re,
Analysant votre code:
Vous avez déclarez un mélange de Integer: valeurs numériques et String: chaines de caractères.
Vous essayez de mettre une String (chaine de caractère) dans un Integer (numérique), je ne sais pas est ce que ça marche!
Puis:
Un mélange de String et Integer dans la même formule, là aussi source probable d'erreur. Et même je pense qu'il y a une erreur dans les parenthèses.
Donc je vous propose:
Analysant votre code:
Option Explicit Dim note1, note2, note3 As Integer Dim moyenne, coeff1, coeff2, coeff3 As String
Vous avez déclarez un mélange de Integer: valeurs numériques et String: chaines de caractères.
note1 = InpuBox("...")
Vous essayez de mettre une String (chaine de caractère) dans un Integer (numérique), je ne sais pas est ce que ça marche!
Puis:
moyenne = ((note1 * coeff1) + (note2 * coeff2) + (note3 * coeff3) / (coeff1 + coeff2 + coeff3))
Un mélange de String et Integer dans la même formule, là aussi source probable d'erreur. Et même je pense qu'il y a une erreur dans les parenthèses.
Donc je vous propose:
Option explicit dim intNote1, intNote2, intNote3, intCoeff1, intCoeff2, intCoeff3, moyenne as Integer dim strNote1, strNote2, strNote3, strCoeff1, strCoeff2, strCoeff3 as String strNote1 = InputBox("saisir note1 :") strNote2 = InputBox("saisir note2 :") strNote3 = InputBox("saisir note3 :") strCoeff1 = InputBox("saisir coeff1 :") strCoeff2 = InputBox("saisir coeff2 :") strCoeff3 = InputBox("saisir coeff3 :") intNote1 = CInt(strNote1) 'Conversion de type de String vers Integer intNote2 = CInt(strNote2) intNote3 = CInt(strNote3) intCoeff1 = CInt(strCoeff1) intCoeff2 = CInt(strCoeff2) intCoeff3 = CInt(strCoeff3) moyenne = ((note1 * coeff1) + (note2 * coeff2) + (note3 * coeff3) )/ (coeff1 + coeff2 + coeff3) MsgBox ("votre moyenne est de : " & moyenne)
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
121
8 nov. 2008 à 21:46
8 nov. 2008 à 21:46
inoutbox("") est une fonction qui vous donne une chaine de caractère, vous pouvez ne pas déclarrer intNote1 mais il faut certainement convertir pendant le calcul, autrement dit:
strNote1 va contenir un truc comme "1.23", un tableau de caractère, donc les opérateurs numériques vont vous donner des résultats érronés (je pense).
intNote1 = CInt(strNote1) = 1.23 la valeur numérique.
strNote1 va contenir un truc comme "1.23", un tableau de caractère, donc les opérateurs numériques vont vous donner des résultats érronés (je pense).
intNote1 = CInt(strNote1) = 1.23 la valeur numérique.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
en fait je veut un truc simple il faut que mon programme me fasse la moyenne de trois notes et qu'elle me l'affiche le plus simple possible sans convertire
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
121
8 nov. 2008 à 22:11
8 nov. 2008 à 22:11
Est ce que mon programme a marché? je pense que c'est le plus simple (à part de faire une conversion dans la formule!)
Pour tester, mettez le code dans un fichier .vbs et cliquez deux fois dessus:
Norlament, ça marche.
Pour tester, mettez le code dans un fichier .vbs et cliquez deux fois dessus:
strNote1 = InputBox("saisir note1 :") strNote2 = InputBox("saisir note2 :") strNote3 = InputBox("saisir note3 :") strCoeff1 = InputBox("saisir coeff1 :") strCoeff2 = InputBox("saisir coeff2 :") strCoeff3 = InputBox("saisir coeff3 :") intNote1 = CInt(strNote1) intNote2 = CInt(strNote2) intNote3 = CInt(strNote3) intCoeff1 = CInt(strCoeff1) intCoeff2 = CInt(strCoeff2) intCoeff3 = CInt(strCoeff3) moyenne = ((intNote1 * intCoeff1) + (intNote2 * intCoeff2) + (intNote3 * intCoeff3) )/ (intCoeff1 + intCoeff2 + intCoeff3) MsgBox ("votre moyenne est de : " & moyenne)
Norlament, ça marche.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
9 nov. 2008 à 00:40
9 nov. 2008 à 00:40
Bonjour tous,
Quelque petite remarque...
1°)
Option explicit
dim intNote1, intNote2, intNote3, intCoeff1, intCoeff2, intCoeff3, moyenne as Integer
dim strNote1, strNote2, strNote3, strCoeff1, strCoeff2, strCoeff3 as String
Dan VB, chaque variable doit être déclarée explicitement et non en bout de ligne.
Dim Note1 as integer, Note 2 as integer etc..
2°) Le InputBox retourne en fonction de la variable appelée, si c'est un string.. renvoi un string, si c'est une numérique.. renvoi un numérique.
Mais le plus simple c'est...
Tu dit...
A+
Quelque petite remarque...
1°)
Option explicit
dim intNote1, intNote2, intNote3, intCoeff1, intCoeff2, intCoeff3, moyenne as Integer
dim strNote1, strNote2, strNote3, strCoeff1, strCoeff2, strCoeff3 as String
Dan VB, chaque variable doit être déclarée explicitement et non en bout de ligne.
Dim Note1 as integer, Note 2 as integer etc..
2°) Le InputBox retourne en fonction de la variable appelée, si c'est un string.. renvoi un string, si c'est une numérique.. renvoi un numérique.
Mais le plus simple c'est...
Sub Main() Dim Note(1 To 3) As Integer Dim Coef(1 To 3) As Single Dim Tot As Single Dim CoefT As Single For i = 1 To 3 Note(i) = InputBox("Entrez la note N°" & i, "Moyenne") Coef(i) = InputBox("Entrez le coéficient pour la note N°" & i, "Moyenne") Tot = Tot + (Note(i) * Coef(i)) CoefT = CoefT + Coef(i) Next i MsgBox ("votre moyenne est de : " & Tot / CoefT) End Sub
Tu dit...
A+