je m'entraine un peu sur VB 6 pour faire de la programmation. Quand
j'exécute, j'ai une erreur de compilation de type "Type d'argument byref
incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je changer?? Merci pour
votre aide!
Dim x, i, c, d As Long
Sub main()
x = InputBox("Valeur du nombre : ")
c = cube(x)
d = factoriel(x)
MsgBox "Le cube de " + Str(x) + " est de " + Str(c)
MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d)
End Sub
Function cube(a As Integer) As Long
a = a * a * a
End Function
Function factoriel(f As Integer) As Long
f = 1
For i = 1 To x
f = f * i
Next i
End Function
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice Henrio
Une fonction renvoie une valeur, tu utilises la variable comme valeur retournée.
Voici comment il faut faire
Function cube(x as integer) as long cube=x*x*x end function
function factoriel(x as intger) as long dim resultat as long, i as long resultat=1 For i = 1 To x resultat=resultat*i Next i factoriel=resultat End Function
"Mohsine" a écrit dans le message de news:
je m'entraine un peu sur VB 6 pour faire de la programmation. Quand j'exécute, j'ai une erreur de compilation de type "Type d'argument byref incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je changer?? Merci pour votre aide!
Dim x, i, c, d As Long Sub main() x = InputBox("Valeur du nombre : ") c = cube(x) d = factoriel(x) MsgBox "Le cube de " + Str(x) + " est de " + Str(c) MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d) End Sub Function cube(a As Integer) As Long a = a * a * a End Function Function factoriel(f As Integer) As Long f = 1 For i = 1 To x f = f * i Next i End Function
Une fonction renvoie une valeur, tu utilises la variable comme valeur
retournée.
Voici comment il faut faire
Function cube(x as integer) as long
cube=x*x*x
end function
function factoriel(x as intger) as long
dim resultat as long, i as long
resultat=1
For i = 1 To x
resultat=resultat*i
Next i
factoriel=resultat
End Function
"Mohsine" <Mohsine@discussions.microsoft.com> a écrit dans le message de
news: 5E9593A6-3164-46E3-A418-20092E03133B@microsoft.com...
je m'entraine un peu sur VB 6 pour faire de la programmation. Quand
j'exécute, j'ai une erreur de compilation de type "Type d'argument byref
incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je changer?? Merci
pour
votre aide!
Dim x, i, c, d As Long
Sub main()
x = InputBox("Valeur du nombre : ")
c = cube(x)
d = factoriel(x)
MsgBox "Le cube de " + Str(x) + " est de " + Str(c)
MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d)
End Sub
Function cube(a As Integer) As Long
a = a * a * a
End Function
Function factoriel(f As Integer) As Long
f = 1
For i = 1 To x
f = f * i
Next i
End Function
Une fonction renvoie une valeur, tu utilises la variable comme valeur retournée.
Voici comment il faut faire
Function cube(x as integer) as long cube=x*x*x end function
function factoriel(x as intger) as long dim resultat as long, i as long resultat=1 For i = 1 To x resultat=resultat*i Next i factoriel=resultat End Function
"Mohsine" a écrit dans le message de news:
je m'entraine un peu sur VB 6 pour faire de la programmation. Quand j'exécute, j'ai une erreur de compilation de type "Type d'argument byref incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je changer?? Merci pour votre aide!
Dim x, i, c, d As Long Sub main() x = InputBox("Valeur du nombre : ") c = cube(x) d = factoriel(x) MsgBox "Le cube de " + Str(x) + " est de " + Str(c) MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d) End Sub Function cube(a As Integer) As Long a = a * a * a End Function Function factoriel(f As Integer) As Long f = 1 For i = 1 To x f = f * i Next i End Function
Patrice Henrio
et dans ce cas la sub main devient
Option explicit Sub main() dim x as integer x = Cint(InputBox("Valeur du nombre : ")) MsgBox "Le cube de " & Str(x) & " est de " & Str(cube(x)) MsgBox "Le Factoriel de " & Str(x) & " est de " & Str(factoriel(x)) End Sub
Il est bon aussi de mettre l'option explicit au début qui permet de ne pas se planter dans variables. Pas de variables globales sauf si indispensables. Préférer des variables locales.
"Patrice Henrio" a écrit dans le message de news:
Une fonction renvoie une valeur, tu utilises la variable comme valeur retournée.
Voici comment il faut faire
Function cube(x as integer) as long cube=x*x*x end function
function factoriel(x as intger) as long dim resultat as long, i as long resultat=1 For i = 1 To x resultat=resultat*i Next i factoriel=resultat End Function
"Mohsine" a écrit dans le message de news:
je m'entraine un peu sur VB 6 pour faire de la programmation. Quand j'exécute, j'ai une erreur de compilation de type "Type d'argument byref incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je changer?? Merci pour votre aide!
Dim x, i, c, d As Long Sub main() x = InputBox("Valeur du nombre : ") c = cube(x) d = factoriel(x) MsgBox "Le cube de " + Str(x) + " est de " + Str(c) MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d) End Sub Function cube(a As Integer) As Long a = a * a * a End Function Function factoriel(f As Integer) As Long f = 1 For i = 1 To x f = f * i Next i End Function
et dans ce cas la sub main devient
Option explicit
Sub main()
dim x as integer
x = Cint(InputBox("Valeur du nombre : "))
MsgBox "Le cube de " & Str(x) & " est de " & Str(cube(x))
MsgBox "Le Factoriel de " & Str(x) & " est de " & Str(factoriel(x))
End Sub
Il est bon aussi de mettre l'option explicit au début qui permet de ne pas
se planter dans variables. Pas de variables globales sauf si indispensables.
Préférer des variables locales.
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news: uOPgEE7oHHA.1852@TK2MSFTNGP05.phx.gbl...
Une fonction renvoie une valeur, tu utilises la variable comme valeur
retournée.
Voici comment il faut faire
Function cube(x as integer) as long
cube=x*x*x
end function
function factoriel(x as intger) as long
dim resultat as long, i as long
resultat=1
For i = 1 To x
resultat=resultat*i
Next i
factoriel=resultat
End Function
"Mohsine" <Mohsine@discussions.microsoft.com> a écrit dans le message de
news: 5E9593A6-3164-46E3-A418-20092E03133B@microsoft.com...
je m'entraine un peu sur VB 6 pour faire de la programmation. Quand
j'exécute, j'ai une erreur de compilation de type "Type d'argument byref
incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je changer?? Merci
pour
votre aide!
Dim x, i, c, d As Long
Sub main()
x = InputBox("Valeur du nombre : ")
c = cube(x)
d = factoriel(x)
MsgBox "Le cube de " + Str(x) + " est de " + Str(c)
MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d)
End Sub
Function cube(a As Integer) As Long
a = a * a * a
End Function
Function factoriel(f As Integer) As Long
f = 1
For i = 1 To x
f = f * i
Next i
End Function
Option explicit Sub main() dim x as integer x = Cint(InputBox("Valeur du nombre : ")) MsgBox "Le cube de " & Str(x) & " est de " & Str(cube(x)) MsgBox "Le Factoriel de " & Str(x) & " est de " & Str(factoriel(x)) End Sub
Il est bon aussi de mettre l'option explicit au début qui permet de ne pas se planter dans variables. Pas de variables globales sauf si indispensables. Préférer des variables locales.
"Patrice Henrio" a écrit dans le message de news:
Une fonction renvoie une valeur, tu utilises la variable comme valeur retournée.
Voici comment il faut faire
Function cube(x as integer) as long cube=x*x*x end function
function factoriel(x as intger) as long dim resultat as long, i as long resultat=1 For i = 1 To x resultat=resultat*i Next i factoriel=resultat End Function
"Mohsine" a écrit dans le message de news:
je m'entraine un peu sur VB 6 pour faire de la programmation. Quand j'exécute, j'ai une erreur de compilation de type "Type d'argument byref incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je changer?? Merci pour votre aide!
Dim x, i, c, d As Long Sub main() x = InputBox("Valeur du nombre : ") c = cube(x) d = factoriel(x) MsgBox "Le cube de " + Str(x) + " est de " + Str(c) MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d) End Sub Function cube(a As Integer) As Long a = a * a * a End Function Function factoriel(f As Integer) As Long f = 1 For i = 1 To x f = f * i Next i End Function
Jean-marc
Mohsine wrote:
je m'entraine un peu sur VB 6 pour faire de la programmation. Quand j'exécute, j'ai une erreur de compilation de type "Type d'argument byref incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je changer?? Merci pour votre aide!
Dim x, i, c, d As Long Sub main() x = InputBox("Valeur du nombre : ") c = cube(x) d = factoriel(x) MsgBox "Le cube de " + Str(x) + " est de " + Str(c) MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d) End Sub Function cube(a As Integer) As Long a = a * a * a End Function Function factoriel(f As Integer) As Long f = 1 For i = 1 To x f = f * i Next i End Function
En complément de ce qu'a dit Patrice, voici une grosse erreur:
Dim x, i, c, d As Long
Ceci ne fait PAS ce que tu crois !
En effet, avec cette déclaration, les variables i et c ne seront PAS des long, mais des variants, ce qui est 1) mal, 2) incorrect.
La syntaxe correcte est Dim x as Long, i as Long, d as Long ou simplement
Dim i As long Dim x as Long Dim d as Long
Par convention, la variable "i" est toujours réservée pour faire une variable de boucle.
On évite les globales.
On préfère Str$ à Str
Voici une version plus accadémique de ton programme:
Voir dans la FAQ la bonne utilisation de Byval et Byref http://faq.vb.free.fr/index.php?question#
Option Explicit
Sub main() Dim valeur As Long Dim res_cube As Long Dim res_fact As Long
' Saisie et conversion de la valeur valeur = CDbl(InputBox("Valeur du nombre : "))
' Calcul des valeurs res_cube = cube(valeur) res_fact = factoriel(valeur)
' Affichage des résultats MsgBox "Le cube de " & Str$(valeur) + " est de " & Str$(res_cube) MsgBox "Le Factoriel de " + Str$(valeur) + " est de " + Str$(res_fact)
End Sub
Function cube(ByVal n As Long) As Long
cube = n * n * n
End Function
Function factoriel(ByVal n As Long) As Long Dim i As Long Dim res As Long
res = 1
For i = 1 To n res = res * i Next i
factoriel = res
End Function
N'hésite pas à consulter la FAQ du groupe, elle contient de nombreux articles sur de très nombreux sujets: http://faq.vb.free.fr/
je m'entraine un peu sur VB 6 pour faire de la programmation. Quand
j'exécute, j'ai une erreur de compilation de type "Type d'argument
byref incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je
changer?? Merci pour votre aide!
Dim x, i, c, d As Long
Sub main()
x = InputBox("Valeur du nombre : ")
c = cube(x)
d = factoriel(x)
MsgBox "Le cube de " + Str(x) + " est de " + Str(c)
MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d)
End Sub
Function cube(a As Integer) As Long
a = a * a * a
End Function
Function factoriel(f As Integer) As Long
f = 1
For i = 1 To x
f = f * i
Next i
End Function
En complément de ce qu'a dit Patrice, voici une grosse erreur:
Dim x, i, c, d As Long
Ceci ne fait PAS ce que tu crois !
En effet, avec cette déclaration, les variables i et c ne seront PAS
des long, mais des variants, ce qui est 1) mal, 2) incorrect.
La syntaxe correcte est
Dim x as Long, i as Long, d as Long
ou simplement
Dim i As long
Dim x as Long
Dim d as Long
Par convention, la variable "i" est toujours réservée pour faire une
variable de boucle.
On évite les globales.
On préfère Str$ à Str
Voici une version plus accadémique de ton programme:
Voir dans la FAQ la bonne utilisation de Byval et Byref
http://faq.vb.free.fr/index.php?question#
Option Explicit
Sub main()
Dim valeur As Long
Dim res_cube As Long
Dim res_fact As Long
' Saisie et conversion de la valeur
valeur = CDbl(InputBox("Valeur du nombre : "))
' Calcul des valeurs
res_cube = cube(valeur)
res_fact = factoriel(valeur)
' Affichage des résultats
MsgBox "Le cube de " & Str$(valeur) + " est de " & Str$(res_cube)
MsgBox "Le Factoriel de " + Str$(valeur) + " est de " + Str$(res_fact)
End Sub
Function cube(ByVal n As Long) As Long
cube = n * n * n
End Function
Function factoriel(ByVal n As Long) As Long
Dim i As Long
Dim res As Long
res = 1
For i = 1 To n
res = res * i
Next i
factoriel = res
End Function
N'hésite pas à consulter la FAQ du groupe, elle contient de
nombreux articles sur de très nombreux sujets:
http://faq.vb.free.fr/
je m'entraine un peu sur VB 6 pour faire de la programmation. Quand j'exécute, j'ai une erreur de compilation de type "Type d'argument byref incompatible" (Il s'arrête sur "c=cube(x)". Que doi-je changer?? Merci pour votre aide!
Dim x, i, c, d As Long Sub main() x = InputBox("Valeur du nombre : ") c = cube(x) d = factoriel(x) MsgBox "Le cube de " + Str(x) + " est de " + Str(c) MsgBox "Le Factoriel de " + Str(x) + " est de " + Str(d) End Sub Function cube(a As Integer) As Long a = a * a * a End Function Function factoriel(f As Integer) As Long f = 1 For i = 1 To x f = f * i Next i End Function
En complément de ce qu'a dit Patrice, voici une grosse erreur:
Dim x, i, c, d As Long
Ceci ne fait PAS ce que tu crois !
En effet, avec cette déclaration, les variables i et c ne seront PAS des long, mais des variants, ce qui est 1) mal, 2) incorrect.
La syntaxe correcte est Dim x as Long, i as Long, d as Long ou simplement
Dim i As long Dim x as Long Dim d as Long
Par convention, la variable "i" est toujours réservée pour faire une variable de boucle.
On évite les globales.
On préfère Str$ à Str
Voici une version plus accadémique de ton programme:
Voir dans la FAQ la bonne utilisation de Byval et Byref http://faq.vb.free.fr/index.php?question#
Option Explicit
Sub main() Dim valeur As Long Dim res_cube As Long Dim res_fact As Long
' Saisie et conversion de la valeur valeur = CDbl(InputBox("Valeur du nombre : "))
' Calcul des valeurs res_cube = cube(valeur) res_fact = factoriel(valeur)
' Affichage des résultats MsgBox "Le cube de " & Str$(valeur) + " est de " & Str$(res_cube) MsgBox "Le Factoriel de " + Str$(valeur) + " est de " + Str$(res_fact)
End Sub
Function cube(ByVal n As Long) As Long
cube = n * n * n
End Function
Function factoriel(ByVal n As Long) As Long Dim i As Long Dim res As Long
res = 1
For i = 1 To n res = res * i Next i
factoriel = res
End Function
N'hésite pas à consulter la FAQ du groupe, elle contient de nombreux articles sur de très nombreux sujets: http://faq.vb.free.fr/