Ecriture dans fichier

Résolu
Allanoel Messages postés 8 Statut Membre -  
Allanoel Messages postés 8 Statut Membre -
Bonjour,
Je vous écris pour vous demander si vous savez comment créer un fichier texte (.txt genre bloc note), y écrire des informations, l'enregistrer et ensuite que je puisse restituer ses informations au endroits ou elles étaient à partir de ce fichier créé.
Etant sur la version 2010 de Microsoft excel j'ai du mal à trouver comment programmer cela, je n'avais aucun mal à le faire sur Visual Basic mais la je ne sais pas du tout quelle procédure utilisé etc.

Merci d'avance pour votre aide.

7 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Voir ceci:

    https://warin.developpez.com/access/fichiers/#LII

    Sub ecrire()
    Dim intFic As Integer
    intFic = FreeFile
    Open "C:\Users\LePivert\monfichier.txt" For Output As intFic 'chemin fichier texte
    Print #intFic, Range("A1")
    Print #intFic, Range("A2")
    Print #intFic, Range("A3")
    Print #intFic, Range("A4")
    Print #intFic, Range("A5")
    Close intFic
    End Sub
    Sub lecture()
    Dim intFic As Integer
    Dim strLigne As String
    intFic = FreeFile
    Open "C:\Users\LePivert\monfichier.txt" For Input As intFic 'chemin fichier texte
    While Not EOF(intFic)
        Line Input #intFic, strLigne
        Range("A1") = strLigne
         Line Input #intFic, strLigne
        Range("A2") = strLigne
         Line Input #intFic, strLigne
         Range("A3") = strLigne
         Line Input #intFic, strLigne
        Range("A4") = strLigne
          Line Input #intFic, strLigne
        Range("A5") = strLigne
       Wend
    Close intFic
    End Sub


    0
  2. Allanoel Messages postés 8 Statut Membre
     
    Bonjour,
    Oups désolé j'ai oublié de dire que mes informations devaient être enregistrées à partir d'un form depuis des textbox, est-ce que je dois juste adapter les "range" ou c'est un code particulier ?
    Merci de te pencher sur mon problème.
    0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Il suffit juste de remplacer:

    Range("A1") par TextBox1 et la même chose pour tout les autres

    'écrire
    Print #intFic, TextBox1 
    
    'lire
     TextBox1  = strLigne

    0
  4. Allanoel Messages postés 8 Statut Membre
     
    D'accord je me disais, j'essaie tout ça je reviendrai vers toi pour rendre compte de ma situation.
    Merci de ton aide.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Allanoel Messages postés 8 Statut Membre
     
    Voila je pense avoir fini mon programme de sauvegarde je te l'envois histoire que tu vois ce que j'ai fais , je l'ai un peu modifié histoire de pouvoir transporter le programme pour que celui-ci nous demande le chemin d'accès au fichier.
    Si tu remarques une erreur fais le moi savoir ou éventuellement une faute de procédure ou quoi qui pourra entrainer une erreur je suis preneur il ne faudrait pas que mon programme s'arrête pour une erreur :p.
    Voici le programme :

    La sauvegarde

    Private Sub ecrire_Click()
    Dim intFic As Integer
    Dim chemin_acces As String
    Dim Ctr
    
       Application.FileDialog(msoFileDialogFilePicker).AllowMultiSelect = True
       Application.FileDialog(msoFileDialogFilePicker).Show
       For Ctr = 1 To Application.FileDialog(msoFileDialogFilePicker).SelectedItems.Count
       chemin_acces = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(Ctr)
       Next
       
    If chemin_acces <> "" Then
    intFic = FreeFile
    Open chemin_acces For Output As intFic 'chemin fichier texte
    Print #intFic, puissance_absorbee
    Print #intFic, courant_nominal
    Print #intFic, courant_ib
    Print #intFic, courant_iz
    Print #intFic, courant_admissible
    Print #intFic, section_norme
    Print #intFic, section_constructeur
    Print #intFic, reference
    Print #intFic, tension
    Print #intFic, rendement
    Print #intFic, puissance_fournie
    Print #intFic, facteur_de_puissance
    Print #intFic, lettre_de_selection
    Print #intFic, ku
    Print #intFic, ke
    Print #intFic, ka
    Print #intFic, k1
    Print #intFic, k2
    Print #intFic, k3
    
    Close intFic
    End If
    End Sub
    


    Le chargement

    Private Sub lire_Click()
    Dim intFic As Integer
    Dim strLigne As String
    Dim chemin_dacces As String
    Dim Ctr
    
       Application.FileDialog(msoFileDialogFilePicker).AllowMultiSelect = True
       Application.FileDialog(msoFileDialogFilePicker).Show
       
       For Ctr = 1 To Application.FileDialog(msoFileDialogFilePicker).SelectedItems.Count
        chemin_dacces = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(Ctr)
       Next
    
    If chemin_dacces <> "" Then
    
    intFic = FreeFile
    Open chemin_dacces For Input As intFic 'chemin fichier texte
    While Not EOF(intFic)
    
    
        Line Input #intFic, strLigne
        If strLigne = "" Then
        puissance_absorbee = " "
        Else
        puissance_absorbee = strLigne
        End If
        
        Line Input #intFic, strLigne
        If strLigne = "" Then
        courant_nominal = " "
        Else
        courant_nominal = strLigne
        End If
    ...
    ...
    Wend
    Close intFic
    End If
    End Sub
    
    


    Oui j'ai rajouté des if mais c'est parce que j'avais une erreur quand j'annulais la boite de sélection des fichiers.
    Sur ce je te dis merci je reste quand même la si tu as un commentaire à faire bonne continuation à toi.
    0
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Oui j'ai rajouté des if mais c'est parce que j'avais une erreur quand j'annulais la boite de sélection des fichiers.

    Pour éviter cela, pourquoi ne pas créer le fichier texte dans le même dossier que le classeur?

    comme ceci:
    Sub ecrire()
    Dim intFic As Integer
    Dim chemin As String
    chemin = ThisWorkbook.Path & "\monfichier.txt"
    intFic = FreeFile
    Open chemin For Output As intFic 'chemin fichier texte
    Print #intFic, Range("A1")
    Print #intFic, Range("A2")
    Print #intFic, Range("A3")
    Print #intFic, Range("A4")
    Print #intFic, Range("A5")
    Close intFic
    Close intFic
    End Sub
    Sub lecture()
    Dim intFic As Integer
    Dim strLigne As String
    Dim chemin As String
    chemin = ThisWorkbook.Path & "\monfichier.txt"
    intFic = FreeFile
    Open chemin For Input As intFic 'chemin fichier texte
    While Not EOF(intFic)
        Line Input #intFic, strLigne
        Range("A1") = strLigne
         Line Input #intFic, strLigne
        Range("A2") = strLigne
         Line Input #intFic, strLigne
         Range("A3") = strLigne
         Line Input #intFic, strLigne
        Range("A4") = strLigne
          Line Input #intFic, strLigne
        Range("A5") = strLigne
       Wend
    Close intFic
    End Sub


    cela évite d'avoir une boite de dialogue de recherche de fichier!

    0
  8. Allanoel Messages postés 8 Statut Membre
     
    Merci beaucoup ca marche niquel je met le sujet sur résolu bonne continuation à toi. :)
    0