Signaler

Ecriture dans fichier [Résolu]

Posez votre question Allanoel 8Messages postés jeudi 15 juin 2017Date d'inscription 19 juin 2017 Dernière intervention - Dernière réponse le 19 juin 2017 à 11:27 par Allanoel
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.
Utile
+0
plus moins
Bonjour,

Voir ceci:

http://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




Donnez votre avis
Utile
+0
plus moins
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.
Donnez votre avis
Utile
+0
plus moins
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

Donnez votre avis
Utile
+0
plus moins
D'accord je me disais, j'essaie tout ça je reviendrai vers toi pour rendre compte de ma situation.
Merci de ton aide.
Donnez votre avis
Utile
+0
plus moins
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.
Donnez votre avis
Utile
+0
plus moins
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!

Donnez votre avis
Utile
+0
plus moins
Merci beaucoup ca marche niquel je met le sujet sur résolu bonne continuation à toi. :)
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !