Ecriture dans fichier

Résolu
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. Contributeur
    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


    1. 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.
      1. Contributeur
        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

        1. D'accord je me disais, j'essaie tout ça je reviendrai vers toi pour rendre compte de ma situation.
          Merci de ton aide.
          1. 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.
            1. Contributeur
              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!

              1. Merci beaucoup ca marche niquel je met le sujet sur résolu bonne continuation à toi. :)