scoboy
Messages postés56Date d'inscriptionmardi 28 mars 2006StatutMembreDernière intervention17 janvier 2008
-
9 août 2006 à 10:41
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
9 août 2006 à 11:15
Bonjour à tous,
Voici mon pitit problème:
J'ai un fichier texte (nommé par la suite "A.txt") regroupant plusieurs valeurs d'une acquisition et réparties en colonnes, en gros le fichier texte ressemble à çà:
(1ère ligne) X Y Z
(2ème ligne) 1 2 3
(3ème ligne) 0 3 4
(4ème ligne) 5 1 5
(5ème ligne) 2 7 9
J'voudrais être capable de faire la somme de toute la colonne Z de la ligne 2 à la ligne 4 (ici 12)
Mon code est le suivant :
Private Sub Command1_Click()
Dim numFile As Long
Dim sTemp As String
Dim iCpt As Integer
Dim dSomme As Double
numFile = FreeFile
iCpt = 0
dSomme = 0
Open "C:\A.txt" ForInput As #numFile
While Not EOF(numFile)
iCpt = iCpt + 1
Line Input #numFile, sTemp
If (iCpt >= 2) And (iCpt <= 4) Then '2 et 4 font référence aux lignes
dSomme = dSomme + Val(sTemp)
End If
Wend
Close #numFile
Text1.Text = CStr(dSomme) 'affiche le résultat dans une textbox
End Sub
Le problème avec mon code viens du faites que je n'arrive pas à lui dire "va à la colonne n°3 ou Z" ; là il me fait la somme ligne par ligne (c'est à dire ici : 123+034+515=672).
Si quelqu'un à une idée, il est le bienvenue
Merci d'avance
A voir également:
Somme d'une colonne de chiffres d'un fichier texte
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 9 août 2006 à 10:48
Salut,
Essaie ceci
Pour que cela fonctionne il faut ETRE SUR que tes chiffres soietn séparés TOUJOURS par une Tabulation
sinon la fonction Split te retourneras des truc faux.
Private Sub Command1_Click()
Dim numFile As Long
Dim sTemp As String
Dim iCpt As Integer
Dim dSomme As Double
Dim TabVal numFile = FreeFile
iCpt = 0
dSomme = 0
Open "C:\1.txt" For Input As #numFile
While Not EOF (numFile)
iCpt = iCpt + 1
Line Input #numFile, sTemp
If (iCpt >= 2) And (iCpt <= 4) Then '2 et 4 font référence aux lignes
TabVal = Split(sTemp, vbTab)
dSomme = dSomme + TabVal(2)
End If
Wend
Close #numFile
Text1.Text = CStr(dSomme) 'affiche le résultat dans une textbox
End Sub