Vba

Fermé
timoboll Messages postés 16 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 15 novembre 2013 - 2 févr. 2011 à 15:06
 Paf - 4 févr. 2011 à 10:36
Bonjour,

je ne comprends pas ce qui cloche dans mon programme.

Sub prime()
Dim db As Database
Dim moniteur As Recordset
Dim prime As Integer
Dim nom As Integer
Dim totprime As Integer
Dim nbacc As Single
Dim reponse As Boolean
Set db = CurrentDb
Set moniteur = bd.OpenRecordset("select* from moniteur")
moniteur.MoveFirst
While moniteur.EOF = False

prime = 0

nom = InputBox("quel est le moniteur?")
nbacc = InputBox("quel est le nombre d'acccidents?")
reponse = InputBox("voulez vous continuer?")
totprime = totprime + prime


do
If nbacc = 0 Then
prime = 300
Else

If nbacc < 6 Then
prime = 150 - ((nbacc - 1) * 30)
Else

prime = 0

loop until prime=0

totprime = totprime + prime

MsgBox ("la prime de" & nom & "est de " & prime)

moniteur.MoveNext
Wend


moniteur.Close
bd.Close


End Sub

3 réponses

bonjour,

Quel est le problème exactement?

A+
0
timoboll Messages postés 16 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 15 novembre 2013
3 févr. 2011 à 16:46
jai fait des modifications et il me dit avant le fonction, end sub attendu, je ne sais pas si jai bien inséré la fonction...

Option Compare Database

Sub prime()
Dim db As Database
Dim moniteur As Recordset
Dim prime As Integer
Dim nom As Integer
Dim totprime As Integer
Dim reponse As Boolean
Set db = CurrentDb
Set moniteur = bd.OpenRecordset("select* from moniteur")
moniteur.MoveFirst
While moniteur.EOF = False

prime = 0
totprime = 0

Function calculprime(nummoniteur As Single, nommoniteur As Integer, nbacc As Single, prime As Single) As Single

If nbacc = 0 Then
prime = 300
Else

If nbacc < 6 Then
prime = 150 - ((nbacc - 1) * 30)
Else

prime = 0

totprime = totprime + prime


End Function

moniteur.MoveNext

moniteur.Close
bd.Close



End Sub
0
Bonjour,

On ne peut pas déclarer une fonction à l'intérieur d'une 'sub', il faut la définir à part et y faire appel dans la sub.

par ailleurs :
- une série de if ...then .... else sans end if
- une boucle while sans wend

Regarde un peu l'aide VBA

Bonne journée
0