Comment créer et écrire dans un fichier texte via VBA ?

Pour créer un texte à l’aide d’un code VBA, vous devez utiliser la méthode CreateTextFile. Cette méthode vous permet de définir un emplacement où vous souhaitez le créer. Cette méthode a une syntaxe dans laquelle vous pouvez spécifier si vous souhaitez écraser le fichier à l’emplacement et spécifier si le fichier est créé en tant que fichier Unicode ou ASCII.

Créer un fichier texte avec VBA

Utilisez les étapes suivantes :

  1. Tout d’abord, vous devez utiliser un objet FileSystemObject ou Folder à utiliser avec la méthode.
    create-a-text-fie-using-vba
  2. Après cela, vous devez créer un autre objet en utilisant la méthode CreateTextFile.
    create-text-file-method
  3. Dans ce code, nous avons utilisé TRUE pour écraser s’il existe déjà un fichier portant le même nom dans le dossier.
  4. À la fin, lorsque vous exécutez cette macro, créez un nouveau fichier texte dans le dossier, comme suit.
Sub create_text_file()

'object to use as folder
Dim fld As Object
Set fld = CreateObject("Scripting.FileSystemObject")

'using create text file method
Dim myFile As Object
Set myFile = fld.CreateTextFile("C:UsersDellDesktopmyFoldermyTextFile.txt", True)
 
End Sub

Syntaxe de la méthode CreateTextFile

CreateTextFile (filename, [ overwrite, [ unicode ]])
  • filename : Chemin et nom du fichier que vous souhaitez créer.
  • overwrite : booléen pour définir si vous souhaitez écraser le fichier (s’il existe déjà) (optionnel).
  • unicode : booléen pour définir si le fichier est créé en tant que fichier Unicode ou ASCII (optionnel).

Écrire dans un fichier texte à l’aide de VBA

Vous pouvez utiliser deux instructions pour écrire des données dans un fichier texte :

  1. Écrire : avec cette instruction, vous pouvez écrire des données dans un fichier texte où vous aurez des virgules entre les valeurs, des guillemets autour des chaînes et des signes # autour des dates.
    write-statement
  2. Imprimer : Avec cette instruction, vous pouvez écrire des données dans un fichier texte avec l’apparence exacte que vous avez dans la feuille de calcul Excel.
    print-statement

Nous allons maintenant examiner des exemples pour les deux instructions et comprendre comment écrire un code complet pour écrire dans un fichier texte. Mais avant cela, vous devez comprendre certaines des terminologies pour écrire le code comme vous le souhaitez.

  • Pour la sortie : vous pouvez utiliser cette commande lorsque vous souhaitez écrire des données ou modifier des données dans un fichier texte.
  • Pour l’entrée : avec cette commande, vous pouvez extraire des données d’un texte, mais vous ne pourrez pas modifier et ajouter des données au fichier.
  • Pour ajouter : cette commande vous aide à ajouter de nouvelles données au bas du fichier texte.
  • FreeFile : Vous pouvez l’utiliser pour définir un numéro de fichier qui n’est pas utilisé pour le fichier texte que vous souhaitez utiliser afin que vous puissiez vous y référer.

Écrivons maintenant un code pour entrer des données dans un fichier texte.

  1. Tout d’abord, vous devez déclarer les variables à utiliser dans le code.
    declare-variables
  2. Après cela, vous devez définir la plage que vous devez écrire dans le fichier texte. Et utilisez le nombre de cellules de la plage comme compteur pour la boucle en le définissant sur une variable.
    define-the-range
  3. Ensuite, vous devez définir l’adresse du fichier texte où vous souhaitez ajouter des données.
    define-the-address-of-the-text-file
  4. À partir de là, vous devez déclarer la commande « FreeFile » à une variable pour obtenir le numéro de fichier.
    freefile-command
  5. Maintenant, vous devez créer utiliser la commande « Sortie » car vous devez ajouter des données au fichier.
    output-command
  6. Enfin, vous devez utiliser la boucle « For Next » pour obtenir les valeurs de la plage une par une et l’ajouter au fichier.
    for-next-loop-to-get-values
  7. De plus, vous devez utiliser la commande close pour fermer le fichier texte une fois que les données y ont été ajoutées.
    close-command
  8. En fin de compte, lorsque vous exécutez cette macro, elle ajoute des données de la plage A1: A13 au fichier texte que vous avez enregistré dans le chemin que vous avez mentionné.
    run-the-macro

Remarque : Assurez-vous de modifier le chemin du fichier texte à partir du code en fonction du chemin que vous avez dans votre système.

Option Explicit
Sub data_to_text_file()

'variables that you need to use in the code
Dim TextFile As Integer
Dim iCol As Integer
Dim myRange As Range
Dim cVal As Range
Dim i As Integer
Dim myFile As String

'define the range that you want to write
Set myRange = Range("A1:A13")
iCol = myRange.Count

'path to the text file (MAKE SURE TO CHANGE IT)
myFile = "C:UsersDellDesktopNewFoldertextfile.txt"

'define FreeFile to the variable file number
TextFile = FreeFile

'using append command to add text to the end of the file
Open myFile For Output As TextFile

'loop to add data to the text file
For i = 1 To iCol
Print #TextFile, Cells(i, 1),
Print #TextFile, Cells(i, 2)
Next i

'close command to close the text file after adding data
Close #TextFile

End Sub

Ajouter un commentaire

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