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.
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 Sub
– tous 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é.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 |
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
- Lire un fichier texte ligne par ligne en VBA
- Lire un fichier texte complet avec VBA
- VBA: Suivre l'activité de l'utilisateur (log)
- Liste de toutes les fonctions VBA
- Manipulation des fichiers en VBA
- Comment débloquer VBA dans les fichiers en provenance d'internet
- RECHERCHEV en VBA – comment utiliser les fonctions Excel directement dans VBA
4 commentaires sur “VBA: Écrire / sauvegarder du texte dans un fichier”
Bonjour. Vraiment j'ai naviguer sur beaucoup de site excel mais ici c'est un bouquet printanier pour s'y retrouver, y apprendre et vraiment avancer avec tant de bonnes documentations et bel exemples dans notre apprentissage. Je suis un grand père très heureux d'apprendre. Merci beaucoup.
Merci beaucoup à vous pour votre commentaire.
Un retour positif comme ça, cela fait toujours plaisir!
Bien à vous, Martin
le cours VBA m'intéresse. qu'est ce que je dois faire?
Merci!!!
Bonjour Onja,
vous pouvez commencer par mon tutoriel VBA: Cours VBA (Excel) gratuit en ligne
Il n'est pas encore terminé malheureusement.
Sinon, vous trouverez une sélection des livres sur VBA dans la section Livres sur Excel et sur VBA (manuels, exercices, internet,…)
Cordialement, Martin