Lecture/écriture d'un fichier txt sous VBA
Clrtte
-
Clrtte -
Clrtte -
Bonjour,
Je dois réaliser une macro qui va utiliser des données statistiques d'un fichier texte.
Mon fichier se trouve sur cette forme:
colonne : les diffèrentes variables x, y, z , t ...
Ma macro doit demander à l'utilisateur le nombre de variable et le nombre de valeurs pour chaque variable.
ON fonctionne de ça, elle doit écrire ces valeurs dans un tableau exel
x y z ...
0 0 0
0 0 0
0 0 0
. . .
. . .
. . .
Je ne sais pas comment faire pour lui imposer le nombre de ligne et de colonne à lire et à écrire. Est-ce que quelqu'un peur m'aider??
Je dois réaliser une macro qui va utiliser des données statistiques d'un fichier texte.
Mon fichier se trouve sur cette forme:
colonne : les diffèrentes variables x, y, z , t ...
Ma macro doit demander à l'utilisateur le nombre de variable et le nombre de valeurs pour chaque variable.
ON fonctionne de ça, elle doit écrire ces valeurs dans un tableau exel
x y z ...
0 0 0
0 0 0
0 0 0
. . .
. . .
. . .
Je ne sais pas comment faire pour lui imposer le nombre de ligne et de colonne à lire et à écrire. Est-ce que quelqu'un peur m'aider??
A voir également:
- Lecture/écriture d'un fichier txt sous VBA
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
2 réponses
Bonjour,
Voici un exemple de départ pour lire et écrire !
pour le lecture il faudra ajouter !
Dim LimiteLignes As Long ' le nombre de valeurs
Dim LimiteColonnes As Long ' le nombre de variable
Dim CompteurLg As Long
Dim CompteurCl As Long
While (Not EOF(NumFic)) And ( CompteurLg <= LimiteLignes)
..Input #NumFic, Resultat
..Limite = (Limite + 1)
..CompteurLg = (CompteurLg + 1)
Wend
et ensuite ajouter un traitement sur la variable Resultat.
c'est un début, qu'en dite vous ?
Lupin
Voici un exemple de départ pour lire et écrire !
Option Explicit
'
Dim Limite As Double
'
Sub EcrireFichierTexte()
Dim NumFic As Integer
Dim Valeur As String
Dim Boucle As Integer
Valeur = "C:\Essai.txt"
NumFic = FreeFile
Open Valeur For Output As #NumFic
For Boucle = 9 To 1 Step -1
Write #NumFic, Boucle
Next Boucle
Close #NumFic
End Sub
'
Sub LireFichierTexte()
Dim NumFic As Integer, Message As String
Dim Valeur As String, Resultat As Integer
Dim Compteur As Double
Dim Boite() As Integer
Valeur = "C:\Essai.txt"
NumFic = FreeFile
Limite = 0
' Premier passage, connaître le nombre d'élément
Open Valeur For Input As #NumFic
While Not EOF(NumFic)
Input #NumFic, Resultat
Limite = (Limite + 1)
Wend
Close #NumFic
'Second passage, effectuer la lecture
ReDim Boite(Limite) As Integer
Compteur = 0
Open Valeur For Input As #NumFic
While Not EOF(NumFic)
Input #NumFic, Resultat
Boite(Compteur) = Resultat
Compteur = (Compteur + 1)
Wend
Close #NumFic
MsgBox "Appel"
Trier Boite, Message
MsgBox Message
End Sub
'
Function Trier(ByRef Boite() As Integer, ByRef Message As String)
Dim Boucle As Integer, ValeurTmp As Integer, Compteur As Integer
For Boucle = 0 To (Limite - 1)
For Compteur = 0 To (Limite - 1)
If (Boite(Compteur) > Boite(Compteur + 1)) Then
ValeurTmp = Boite(Compteur + 1)
Boite(Compteur + 1) = Boite(Compteur)
Boite(Compteur) = ValeurTmp
End If
Next Compteur
Next Boucle
For Boucle = 0 To Limite
Message = Message & Boite(Boucle) & vbCrLf
Next Boucle
End Function
'
pour le lecture il faudra ajouter !
Dim LimiteLignes As Long ' le nombre de valeurs
Dim LimiteColonnes As Long ' le nombre de variable
Dim CompteurLg As Long
Dim CompteurCl As Long
While (Not EOF(NumFic)) And ( CompteurLg <= LimiteLignes)
..Input #NumFic, Resultat
..Limite = (Limite + 1)
..CompteurLg = (CompteurLg + 1)
Wend
et ensuite ajouter un traitement sur la variable Resultat.
c'est un début, qu'en dite vous ?
Lupin