Lecture/écriture d'un fichier txt sous VBA

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??
Configuration: Windows XP
Firefox 2.0.0.9

2 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    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
    8
  2. Clrtte
     
    Juste un message pour te remercier de te ton aide...
    0