Vb déja fait mais érreure imposible a détecté
glimor
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
voila mon vb ne marche pas c'est tout c.. comme calcule mais je ne trouve pas mon érreur si vous pouviez m'aider a la trouver (c'est le calcule qui et faux a la fin )
svp merci
Option Explicit
Dim note1, note2, note3 As Integer
Dim moyenne, coeff1, coeff2, coeff3 As String
Sub main()
note1 = InputBox("saisir note1 :")
note2 = InputBox("saisir note2 :")
note3 = InputBox("saisir note3 :")
coeff1 = InputBox("saisir coeff1 :")
coeff2 = InputBox("saisir coeff2 :")
coeff3 = InputBox("saisir coeff3 :")
moyenne = ((note1 * coeff1) + (note2 * coeff2) + (note3 * coeff3) / (coeff1 + coeff2 + coeff3))
MsgBox ("votre moyenne est de : " & moyenne)
End Sub
voila mon vb ne marche pas c'est tout c.. comme calcule mais je ne trouve pas mon érreur si vous pouviez m'aider a la trouver (c'est le calcule qui et faux a la fin )
svp merci
Option Explicit
Dim note1, note2, note3 As Integer
Dim moyenne, coeff1, coeff2, coeff3 As String
Sub main()
note1 = InputBox("saisir note1 :")
note2 = InputBox("saisir note2 :")
note3 = InputBox("saisir note3 :")
coeff1 = InputBox("saisir coeff1 :")
coeff2 = InputBox("saisir coeff2 :")
coeff3 = InputBox("saisir coeff3 :")
moyenne = ((note1 * coeff1) + (note2 * coeff2) + (note3 * coeff3) / (coeff1 + coeff2 + coeff3))
MsgBox ("votre moyenne est de : " & moyenne)
End Sub
A voir également:
- Vb déja fait mais érreure imposible a détecté
- Clé usb non detecté - Guide
- Vb - Télécharger - Langages
- Un hyperviseur a été détecté. les fonctionnalités nécessaires à hyper-v ne seront pas affichées. - Windows 11
- Vb cable - Télécharger - Audio & Musique
- Le logiciel amd a détecté un dépassement de délai du pilote - Forum Carte graphique
7 réponses
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.
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)
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
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.
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+