Ecriture dans fichier

Résolu/Fermé
Allanoel Messages postés 8 Date d'inscription jeudi 15 juin 2017 Statut Membre Dernière intervention 19 juin 2017 - 16 juin 2017 à 11:28
Allanoel Messages postés 8 Date d'inscription jeudi 15 juin 2017 Statut Membre Dernière intervention 19 juin 2017 - 19 juin 2017 à 11:27
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.
A voir également:

7 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 juin 2017 à 15:26
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
Allanoel Messages postés 8 Date d'inscription jeudi 15 juin 2017 Statut Membre Dernière intervention 19 juin 2017
19 juin 2017 à 07:32
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
19 juin 2017 à 07:56
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
Allanoel Messages postés 8 Date d'inscription jeudi 15 juin 2017 Statut Membre Dernière intervention 19 juin 2017
19 juin 2017 à 08:41
D'accord je me disais, j'essaie tout ça je reviendrai vers toi pour rendre compte de ma situation.
Merci de ton aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Allanoel Messages postés 8 Date d'inscription jeudi 15 juin 2017 Statut Membre Dernière intervention 19 juin 2017
Modifié le 19 juin 2017 à 10:05
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
19 juin 2017 à 11:21
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
Allanoel Messages postés 8 Date d'inscription jeudi 15 juin 2017 Statut Membre Dernière intervention 19 juin 2017
19 juin 2017 à 11:27
Merci beaucoup ca marche niquel je met le sujet sur résolu bonne continuation à toi. :)
0