Explication d'un prog VBA (max)

  • Initiateur de la discussion Initiateur de la discussion Sebb34
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sebb34

XLDnaute Nouveau
Bonjour à tous, j'ai débuté la programmation en VBA récemment, et notre enseignant nous a donné un programme avec la correction. Mais je ne comprends pas sa logique pour avoir le maximum.

il était demandé de réaliser une procédure Sub nommée client permettant de rentrer successivement le nom et le solde bancaire de 5 clients au clavier, de calculer le solde moyen, de compter combien sont débiteurs et d'afficher le nom et le solde du client "le plus riche".

le programme est le suivant et il fonctionne!

Sub clients()
Dim NAME As String
Dim maxname As String
Dim Solde As Currency
Dim Max As Currency
Dim Nbdeb As Integ
er
Dim i As Integer
Dim total as currency
Nbdeb = 0
NAME = InputBox("Entrez le nom du client")
Solde = InputBox("Entrez son solde")
Max = Solde
maxname = NAME
For i = 1 To 5
NAME = InputBox("Entrez le nom du client")
Solde = InputBox("Entrez son solde")
To
tal=total+solde
If Solde < 0 Then
Nbdeb = Nbdeb + 1
End If
If Solde > Max Then
maxname = NAME
Max = Solde
End If
Next
Msgbox("solde moyen des clients :" & total/5)
MsgBox ("Il y a " & Nbdeb & " soldes débiteurs")
MsgBox ("Le client le plus riche est :" & m
axname & ". Son solde est :" & Max)
End Sub


Mais je ne vois pas comment on peut avoir le max? je ne comprends pas la logique... mon prof étant absent et les examens arrivants bientôt..
Quelqu'un a une idée?

Seb
 
Dans le code proposé, il y a une boucle principale 'For i = 1 To 5' dans laquelle est demandé à l'opérateur de saisir divers montants.

Juste avant la boucle, le code stocke le premier montant saisi dans la variable 'max'
A chaque itération de i (donc pour chaque montant saisi), le code vérifie si le montant est supérieur au max, et si c'est le cas ce montant devient le max.
Au passage dans cette même boucle on compte le nombre de montants négatifs => variable 'nbdeb'

En fait c'est comme si il y avait une liste de noms+montants : pour déterminer le max, on lit ligne par ligne et si le montant est sup au précédent, on le retient pour le restituer à la fin de la lecture.

Est-ce plus clair?

Oui beaucoup plus clair!
Merci!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
685
Réponses
0
Affichages
476
Réponses
3
Affichages
550
Réponses
1
Affichages
531
Retour