fatim1
Messages postés17Date d'inscriptionsamedi 21 novembre 2009StatutMembreDernière intervention21 novembre 2009
-
17 mars 2009 à 03:28
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
17 mars 2009 à 06:44
Salut.
J'ai trouvé ce bout de code quelque part dans ce site.Et je ne le comprend pas bien.
Quelqu'un pour me l'expliquer s'il vous plaît.
Private Sub Command5_Click()
If Text2 = "Aucun" Then
reponse = MsgBox("Vous devez selectionner un compte", vbInformation, "Attention")
GoTo fin
End If
solde = 0
cpt = 0
exist = "c:\compte\operation" + Form1.Text2 + ".dat"
If Dir(exist) <> "" Then
Open "c:\compte\operation" + Form1.Text2 + ".dat" For Input As #1
Do
cpt = cpt + 1
If EOF(1) Then Exit Do
Input #1, op1
Input #1, op2
Input #1, op3
Input #1, op4
solde = solde + Val(op4)
Loop
Close
End If
If solde >= 0 Then
MsgBox ("Solde créditeur de " + Format(solde, "#####.##") + " €")
Else
MsgBox ("Solde débiteur de " + Format(solde, "#####.##") + " €")
End If
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 mars 2009 à 06:36
exemple typique de plein de choses a ne pas faire...
allez, restructuration et explication de texte:
Private Sub Command5_Click()
Dim nSolde As Single
Dim sFichier As String
Dim iFile As Integer
Dim xnOp(3) As Single
If text2.Text = "Aucun" Then
MsgBox "Vous devez selectionner un compte.", vbExclamation, "Pas de compte selectionné"
Else
sFichier = "c:\compte\operation" & text2.Text & ".dat"
If LenB(Dir$(sFichier)) = 0 Then
MsgBox "Le fichier correspondant au compte '" & text2.Text & "' n'a pas été trouvé.", vbExclamation, "Fichier non trouvé"
Else
Open sFichier For Input As #iFile
Do Until EOF(iFile)
Input #1, xnOp
nSolde = nSolde + xnOp(3)
Loop
Close iFile
MsgBox "Solde " & IIf(nSolde >= 0, "créditeur", "débiteur") & " de " & FormatCurrency(nSolde, 2), vbInformation
End If
End If
End Sub
NB: a adapater bien sur pour donner le bon type de donnée au tableau xnOp.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 mars 2009 à 06:44
Private Sub Command5_Click()
'# 1- Code non indenté => peu clair
'# 2- se méfier des propriétés par default. utiliser ici Text2.Text
If Text2 = "Aucun" Then
'# 3- a quoi sert 'reponse' ? Ou est déclarée cette variable ?
'# 4- 'Attention' n'est pas un bon titre de MsgBox, il faut y resumer le message
reponse = MsgBox("Vous devez selectionner un compte", vbInformation, "Attention")
'# 5- un If...Then...Else convient ici, et simplifie la lecture. Au pire, l'instruction 'Exit Sub' existe...
GoTo fin
End If
'# 6- Ces variables son déclarées où ?
solde = 0
cpt = 0
'# 7- On ne fait pas de concaténation en utilisant '+', on utilise '&'
exist = "c:\compte\operation" + Form1.Text2 + ".dat"
If Dir(exist) <> "" Then
'# 8- Pourquoi ne pas réutiliser la variable existe ?
'# 9- dangereux d'utilise #1. utiliser FreeFile
Open "c:\compte\operation" + Form1.Text2 + ".dat" For Input As #1
Do
'# 10- cpt ne sert a rien...
cpt = cpt + 1
If EOF(1) Then Exit Do
Input #1, op1
Input #1, op2
Input #1, op3
Input #1, op4
solde = solde + Val(op4)
Loop
'# 11- cibler le close en y ajoutant le canal de fichier a fermer. sinon, ca ferme tous les fichiers ouverts => source d'erreur
Close
End If
If solde >= 0 Then
MsgBox ("Solde créditeur de " + Format(solde, "#####.##") + " €")
Else
MsgBox ("Solde débiteur de " + Format(solde, "#####.##") + " €")
End If
fin:
End Sub
et pour l'explication de texte....
on ouvre un fichier dat, contenant differents montant.
on cumule ceux de la quatrieme colonne
et on affiche le solde résultant