Soyez le premier à donner votre avis sur cette source.
Vue 10 853 fois - Téléchargée 584 fois
Option Explicit 'J'indique que toutes les variables doivent être définies. '##### Ici je définis toutes les variables ##### Dim a As Double, b As Double, c As Double, d As Double, e As Double, f As Double Dim i As Integer Dim r As Double, x As Double, y As Double '##### Fin de la définition des variables ##### Private Sub Command1_Click() '##### Ici j'ai créé un boucle qui vérifie si il y a bien quelque chose dans chaque TextBox ##### For i = 0 To 5 If Text(i).Text = "" Then 'Si le TextBox nommé Text(i).Text est vide alors il affiche un message d'erreur 'Dans Text(i).Text le i correspond à la valeur de i qui vaut donc 0 puis 1 puis 2 puis ... jusqu'a 5 MsgBox "Vous devez remplir tous les champs", vbInformation, "Erreur" 'Définition du message d'erreur Text(i).SetFocus 'Sélection du TextBox vide Exit Sub 'Fin de l'action car il y a un TextBox vide End If 'Fin de la condition Next i 'Relance la boucle tant que i n'égale pas 5 '##### Fin de la boucle ##### ' '##### On donne aux variables les valeurs entrées dans les TextBox ##### a = Text(0).Text b = Text(1).Text c = Text(2).Text d = Text(3).Text e = Text(4).Text f = Text(5).Text '##### Toutes les variables que l'utilisateur devait configurer se sont vu attribuer une valeur ##### r = (-e * a) + (b * d) 'On calcule le déterminant qui servira à trouver la valeur de y If r = 0 Then 'Si le déterminant est égale à 0 le calcul est impossible car on ne sait pas diviser un nombre par 0 alors on affiche un message d'impossibilité MsgBox "Impossible", vbInformation, "Erreur" 'Définition du message Exit Sub 'Fin de l'action car r = 0 Else 'Sinon on continue y = ((d * c) - (f * a)) / r 'On calcule la valeur de y End If 'Fin de la condition If a = 0 Then 'Si a = 0 on se retouve dans le même cas qu'avec r et on affiche aussi un message d'erreur MsgBox "Impossible", vbInformation, "Erreur" 'Définition du message Exit Sub 'Fin de l'action car a = 0 Else 'Sinon on continue x = (c + (-b * y)) / a 'On calcule la valeur de x x = Format(x, "#0.000") 'On arrondit x au millième y = Format(y, "#0.000") 'On arrondit y au millième End If 'Fin de la condition MsgBox "x = " & x & Chr(13) & "y = " & y, vbInformation, "Résultat :" 'On affiche un message avec les résultats de x et de y '##### Ici j'ai encore créé une boucle qui vide le contenu de chaque TextBox ##### For i = 0 To 5 Text(i).Text = "" 'Réinisialisation du TextBox qui correspond à la valeur de i Next i '##### Fin de la boucle ##### Text(0).SetFocus 'Sélectionne Text(0).Text pour une éventuelle nouvelle entrée End Sub '##### Ici j'interdis l'utilisation de toutes les touches sauf de celles qui sont utiles ##### Private Sub Text_KeyPress(Index As Integer, KeyAscii As Integer) If KeyAscii = "8" Then Exit Sub 'La touche "Supprimer" If KeyAscii = "44" Then Exit Sub 'La touche "," If KeyAscii = "45" Then Exit Sub 'La touche "-" '##### Ici seuls les chiffres sont pris en compte ##### If KeyAscii < "48" Then KeyAscii = 0 If KeyAscii > "57" Then KeyAscii = 0 '##### Donc si la touche pressée ne correspond pas à 0,1,2,...,7,8,9 elle n'est pas prise en compte ##### End Sub
6 juil. 2005 à 11:48
c'est relativement bien expliqué, néanmoins, il n'est pas non plus nécessaire de commenter chaque ligne, surtout si c'est des instructions "End If" ou autres.
il aurait été bon de prendre en compte le cas particulier a = 0
en effet, ce n'est pas bien difficile à rajouter :
si a=0 : y = c/b et x = (f-e*y)/d
4 déc. 2001 à 11:08
2 déc. 2001 à 21:34
30 nov. 2001 à 20:32
30 nov. 2001 à 20:27
J'espère qu'ainsi vous encore une meilleure compréhension de mon petit programme.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.