Autres comment introduire le répéter dans mon algorithme

rzo

XLDnaute Nouveau
bonjour à tous,

je cherche à introduire dans mon algorithme (voir en dessous) le do until loop (répeter jusqu'à) on me dit que c'est comme le wile wend sauf qu'il se met à la fin c'est a dire que je doit placer le do (entre quoi?) et le loop (entre quoi ) j'ai pas compris ou le fameux répéter jusqu'à se place ...

merci pour votre futur réponse
(algorithme : )

Private Sub Calcul_Click()

Dim Nbhcpta As Integer

Dim Nbhconseil As Integer

Dim NetHT As Single

Dim NetTTC As Single

Dim Rglmt As String

Dim Mtescpte As Single

Dim I As Integer

Dim somme As Integer

Dim Nbfact As Integer

Const Txcpta = 60

Const Txconseil = 80

Const TxTVA = 0.2

Const TxEscpte = 0.03

Nbhcpta = InputBox("Quel est le nombre d'heures réalisés en comptabilité?")

Nbhconseil = InputBox("Quel est le nombre d'heures réalisés en conseil?")

NetHT = (Txcpta * Nbhcpta) + (Txconseil * Nbhconseil)

While NetHT < 1000

MsgBox ("client inintéressant")

Nbhcpta = InputBox("Quel est le nombre d'heures réalisés en comptabilité?")

Nbhconseil = InputBox("Quel est le nombre d'heures réalisés en conseil?")

Wend

Select Case NetHT

Case Is > 10000: NetHT = NetHT * 90

MsgBox ("une réduction de 10% est accordée")

Case Is > 8000: NetHT = NetHT * 95

MsgBox ("une réduction de 5% est accordée")

Case Is > 7000: NetHT = NetHT * 0.99

MsgBox ("une réduction de 1% est accordée")

Case Else

MsgBox ("pas de réduction")

End Select

Rglmt = InputBox("Quel est le mode de réglement(comptant ou crédit)?")

If Rglmt = "comptant" Then

Mtescpte = NetHT * TxEscpte

Else

If Rglmt = "crédit" Then

Mtescpte = 0

End If

End If

Nbfact = InputBox("combien de facture seront saisies?")

For I = 1 To Nbfact

NetTTC = (NetHT - Mtescpte) * (1 + TxTVA)

somme = somme + NetTTC

Next

MsgBox ("la somme des factures est égale à :" & somme)

MsgBox ("Le montant TTC pour ce client est de : " & NetTTC)

End Sub

cordialement,
 

rzo

XLDnaute Nouveau
Bonsoir,
Excusez moi pour le confort des yeux j'ai mis des [] pour que se soit plus facile à lire je sais pas si c'est comme ca... La création de mon message permet d'exposer les difficultés que rencontre pour insérer le do until toop dans mon algorithme .
[Private Sub Calcul_Click()]

[Dim Nbhcpta] As Integer

[Dim Nbhconseil] As Integer

[Dim NetHT] As Single

[Dim NetTTC] As Single

[Dim Rglmt] As String

[Dim Mtescpte] As Single

[Dim I ]As Integer

[Dim somme] As Integer

[Dim Nbfact] As Integer

Const Txcpta = 60

Const Txconseil = 80

Const TxTVA = 0.2

Const TxEscpte = 0.03

Nbhcpta = InputBox("Quel est le nombre d'heures réalisés en comptabilité?")

Nbhconseil = InputBox("Quel est le nombre d'heures réalisés en conseil?")

NetHT = (Txcpta * Nbhcpta) + (Txconseil * Nbhconseil)

While NetHT < 1000

MsgBox ("client inintéressant")

Nbhcpta = InputBox("Quel est le nombre d'heures réalisés en comptabilité?")

Nbhconseil = InputBox("Quel est le nombre d'heures réalisés en conseil?")

Wend

Select Case NetHT

Case Is > 10000: NetHT = NetHT * 90

MsgBox ("une réduction de 10% est accordée")

Case Is > 8000: NetHT = NetHT * 95

MsgBox ("une réduction de 5% est accordée")

Case Is > 7000: NetHT = NetHT * 0.99

MsgBox ("une réduction de 1% est accordée")

Case Else

MsgBox ("pas de réduction")

End Select

Rglmt = InputBox("Quel est le mode de réglement(comptant ou crédit)?")

If Rglmt = "comptant" Then

Mtescpte = NetHT * TxEscpte

Else

If Rglmt = "crédit" Then

Mtescpte = 0

End If

End If

Nbfact = InputBox("combien de facture seront saisies?")

For I = 1 To Nbfact

NetTTC = (NetHT - Mtescpte) * (1 + TxTVA)

somme = somme + NetTTC

Next

MsgBox ("la somme des factures est égale à :" & somme)

MsgBox ("Le montant TTC pour ce client est de : " & NetTTC)

End Sub

cordialement,
 

TooFatBoy

XLDnaute Barbatruc
VB:
Private Sub Calcul_Click()
'
Dim Nbhcpta As Integer
Dim Nbhconseil As Integer
Dim NetHT As Single
Dim NetTTC As Single
Dim Rglmt As String
Dim Mtescpte As Single
Dim I As Integer
Dim somme As Integer
Dim Nbfact As Integer
Const Txcpta = 60
Const Txconseil = 80
Const TxTVA = 0.2
Const TxEscpte = 0.03

Nbhcpta = InputBox("Quel est le nombre d'heures réalisés en comptabilité?")
Nbhconseil = InputBox("Quel est le nombre d'heures réalisés en conseil?")
NetHT = (Txcpta * Nbhcpta) + (Txconseil * Nbhconseil)

While NetHT < 1000
    MsgBox ("client inintéressant")
    Nbhcpta = InputBox("Quel est le nombre d'heures réalisés en comptabilité?")
    Nbhconseil = InputBox("Quel est le nombre d'heures réalisés en conseil?")
Wend

Select Case NetHT
Case Is > 10000
    NetHT = NetHT * 90
    MsgBox ("une réduction de 10% est accordée")
Case Is > 8000
    NetHT = NetHT * 95
    MsgBox ("une réduction de 5% est accordée")
Case Is > 7000
    NetHT = NetHT * 0.99
    MsgBox ("une réduction de 1% est accordée")
Case Else
    MsgBox ("pas de réduction")
End Select

Rglmt = InputBox("Quel est le mode de réglement(comptant ou crédit)?")

If Rglmt = "comptant" Then
    Mtescpte = NetHT * TxEscpte
Else
    If Rglmt = "crédit" Then
        Mtescpte = 0
    End If
End If

Nbfact = InputBox("combien de facture seront saisies?")

For I = 1 To Nbfact
    NetTTC = (NetHT - Mtescpte) * (1 + TxTVA)
    somme = somme + NetTTC
Next

MsgBox ("la somme des factures est égale à :" & somme)
MsgBox ("Le montant TTC pour ce client est de : " & NetTTC)

End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir Marcel32

Navet déjà fait la même chose dans le fil initial ;)
Et tout est pourtant dit dans ma signature ;)

=>rzo
L'usage c'est de faire un up(*) dans sa 1ère discussion plutôt que de créer une seconde discussion
Mais il désormais trop tard ;)
Le doublon est là, le doublon existe

(*) c'est à dire poster un message dans sa propre discussion pour que celle-ci se réaffiche en tête de liste.
 

rzo

XLDnaute Nouveau
Re bonsoir,
Ok effectivement j'aurai pas du poster un deuxième message ici je vais essayé de supprimer mon premier message en gardant mon deuxième ( celui là) afin de peut être avoir une réponse à mon problème sur le do loop
Excusez moi pour le doublon
Crdlt,
 

TooFatBoy

XLDnaute Barbatruc
je cherche à introduire dans mon algorithme (voir en dessous) le do until loop (répeter jusqu'à) on me dit que c'est comme le wile wend sauf qu'il se met à la fin c'est a dire que je doit placer le do (entre quoi?) et le loop (entre quoi ) j'ai pas compris ou le fameux répéter jusqu'à se place ..
"On" t'a dit n'importe quoi : ça ne se met pas plus à la fin qu'au début !

Un "DO UNTIL ... LOOP" c'est une boucle, et toutes les boucles on la même forme :
- une instruction d'en-tête de boucle (exemple : WHILE) pour délimiter le début de la boucle,
- les instructions à effectuer dans la boucle,
- une instruction de fin de boucle (exemple : WEND) pour délimiter la fin de la boucle.

Il n'y a rien à comprendre là-dedans. C'est simplement évident.



En revanche, c'est la condition (soit pour entrer dans la boucle, soit pour sortir de la boucle) qui peut se mettre soit "au début" soit "à la fin", selon ce que tu utilises pour faire ta boucle.
- Avec DO UNTIL ... LOOP la condition est au début, donc il n'est pas sûr qu'on passe dans la boucle (ça dépend du résultat de la condition).
-Avec DO ... LOOP UNTIL la condition est à la fin, donc on est sûr de passer au moins une fois dans la boucle.
 

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley