VBA: Écrire / sauvegarder du texte dans un fichier

En VBA, il est assez simple d'écrire (sauvegarder) un texte dans un fichier. Il s'agit d'une fonctionnalité indispensable à tout langage de programmation – VBA inclus.

VBA: sauvegarder du texte dans un fichier TXT
VBA: sauvegarder du texte dans un fichier TXT

 

Il vous suffit d'utiliser le code qui suit en indiquant le nom du nouveau fichier (= le chemin complet) et le texte (chaîne de caractères) à exporter selon vos besoins. Cette procédure est très rapide et peut s'avérer très pratique.

Le suffixe du fichier dans lequel le texte peut être sauvegardé peut être le classique .txt, le .csv ou tout autre suffixe (de préférence un qui n'est pas utilisé par une application) comme par exemple .log.

Il est même possible d'exporter le texte dans un fichier sans suffixe. Dans ce cas, quand vous voudrez l'ouvrir via Windows Explorer, vous devrez choisir avec quel application vous voudrez l'ouvrir (comme Windows ne pourra pas choisir une application par défaut).

Exporter / sauvegarder un texte dans un fichier avec VBA

Voici donc le code VBA pour créer une procédure Subtous les paramètres se trouvent à l'intérieur de cette procédure et aucun argument n'est donc nécessaire. Il vous suffit de copier & coller ce code dans votre projet VBA et de modifier le texte à exporter ainsi que le nom et emplacement du fichier exporté.

Sub SauvegarderTexteCommeFichier()
' par Excel-Malin.com ( https://excel-malin.com ) 
On Error GoTo Erreur

Dim f As Integer
Dim MonTexte As String
Dim MonFichier As String

f = FreeFile

'texte à sauvegarder
MonTexte = "Ce texte sera sauvegardé."

'Chemin et nom du fichier
MonFichier = "C:\MonDossier\MonFichierTexte.txt"

'sauvegarde
Open MonFichier For Output As #f
Print #f, MonTexte
Close #f

MsgBox "Le texte a été sauvegardé dans: " & MonFichier
Exit Sub

Erreur:
MsgBox "Une erreur est survenue..."
End Sub

 

Fonction VBA pour écrire le texte dans un fichier

La fonction suivante utilise deux arguments de type String – 1) le chemin + nom du fichier et 2) la chaîne de caractères à exporter.

Public Function SauvegarderTexteCommeFichier(Fichier As String, Chaine As String)
' par Excel-Malin.com ( https://excel-malin.com )
On Error GoTo Erreur

Dim f As Integer

f = FreeFile

'sauvegarde
Open Fichier For Output As #f
Print #f, Chaine
Close #f

Exit Function

Erreur:
MsgBox "Une erreur est survenue..."
End Function

 

Et la procédure VBA suivante montre l'exemple d'utilisation de cette fonction:

Sub MaProcedure()
' par Excel-Malin.com ( https://excel-malin.com )

Dim Chaine As String
Dim Fichier As String

MaChaine = "abcd 1234"
MonFichier = "C:\MonDossier\MonFichierTexte.txt"

x = SauvegarderTexteCommeFichier(MonFichier, MaChaine)

End Sub

 

Le format du texte à exporter vers un fichier

Par défaut, la chaîne de caractères sera exportée en une seule ligne. Si vous voulez que la chaîne de caractères soit sauvegardé en plusieurs lignes, il est possible de séparer les lignes en insérant le code VBA du "retour à la ligne" suivant: Chr(13) & Chr(10) aux endroits appropriés avant l'écriture dans le fichier.

Ce qui donne en pratique ceci:

La chaîne "a b c" sera exporté en une seule ligne >> a b c

La chaîne "a" & Chr(13) & Chr(10) & "b" & Chr(13) & Chr(10) & "c" sera exportée en trois lignes:
a
b
c

L'export (la sauvegarde) d'une chaîne de caractères a de nombreuses utilisations possibles. Vous pouvez ainsi stocker différentes informations de manière permanente, créer le suivi des actions de l'utilisateur (log), etc.

Pour aller plus loin en VBA

Si vous voulez approfondir votre connaissance à ce sujet (créations de fichiers texte), vous pouvez consulter la page Microsoft sur la notion de FreeFile.

Sinon, d'autres articles sur VBA sont disponibles pour vous ici sur Excel-Malin.com

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

4 commentaires sur “VBA: Écrire / sauvegarder du texte dans un fichier”