Fichier texte d'écriture VBA

Fichier texte d'écriture Excel VBA

Dans VBA, nous pouvons ouvrir ou lire ou écrire un fichier texte, écrire un fichier texte signifie les données que nous avons dans une feuille Excel et nous le voulons dans un fichier texte ou un fichier bloc-notes, il y a deux méthodes à faire, l'une est par l'utilisation de la propriété d'objet File System de VBA et une autre consiste à utiliser la méthode Ouvrir et écrire dans VBA.

Dans la plupart des entreprises, une fois le rapport finalisé, elles cherchent à télécharger le rapport dans la base de données. Pour télécharger dans la base de données, ils utilisent le format «Fichiers texte» pour mettre à jour la base de données. Nous copions généralement les données d'Excel et les collons dans un fichier texte. La raison pour laquelle nous nous appuyons sur les fichiers texte, car ils sont très faciles à utiliser en raison de leurs moyens légers et simples. En utilisant le codage VBA, nous pouvons automatiser la tâche de copie des données d'un fichier Excel vers un fichier texte. Dans cet article, nous allons vous montrer comment copier ou écrire des données d'un fichier Excel vers un fichier texte à l'aide du code VBA.

Comment écrire des données dans des fichiers texte à l'aide de VBA?

L'écriture de données Excel en texte est un codage complexe et nécessite une très bonne connaissance du codage VBA. Suivez les étapes ci-dessous pour écrire le code VBA afin de copier les données d'Excel dans un fichier texte.

Avant de vous montrer comment écrire le code, laissez-moi vous expliquer comment ouvrir le fichier texte à l'aide d'une instruction open.

Syntaxe du fichier texte ouvert

Ouvrez [Chemin de fichier], pour [Mode], comme [Numéro de fichier]

Chemin du fichier: le chemin du fichier que nous essayons d'ouvrir sur l'ordinateur.

Mode: Le mode est le contrôle que nous pouvons avoir sur l'ouverture des fichiers texte. Nous pouvons avoir trois types de contrôle sur le fichier texte.

  • Mode d'entrée: Cela suggère un contrôle en « lecture seule » du fichier texte d'ouverture. Si nous utilisons le «Mode d'entrée», nous ne pouvons rien faire avec le fichier. Nous pouvons simplement lire le contenu du fichier texte.
  • Mode de sortie: En utilisant cette option, nous pouvons écrire le contenu dessus. Le point dont nous devons nous souvenir ici est que toutes les données existantes seront écrasées. Nous devons donc nous méfier de la perte éventuelle d'anciennes données.
  • Mode Append: Ce mode est complètement l'opposé du mode OutPut. En utilisant cette méthode, nous pouvons réellement écrire les nouvelles données à la fin des données existantes dans le fichier.

Numéro de fichier: Cela comptera le numéro de fichier texte de tous les fichiers texte ouverts. Cela reconnaîtra les numéros de fichiers ouverts en valeurs entières de 1 à 511. L'attribution du numéro de fichier est la plus délicate et conduit à beaucoup de confusion. Pour cela, nous pouvons utiliser la fonction File gratuite.

Free File renvoie le numéro unique des fichiers ouverts. De cette façon, nous pouvons attribuer le numéro de fichier unique sans aucun type de valeurs en double.

Vous pouvez télécharger ce modèle de fichier texte d'écriture VBA ici - Modèle de fichier texte d'écriture VBA

Exemple 1

Suivez les étapes ci-dessous pour écrire le code afin de créer un nouveau fichier texte.

Supposons que vous ayez déjà un fichier texte nommé «Hello.txt» dans la mémoire de votre ordinateur et nous vous montrerons comment y écrire les données.

Étape 1: déclarer la variable

Déclarez la variable pour contenir le chemin du fichier en tant que chaîne.

Code:

 Sub TextFile_Example1 () Dim Path As String End Sub 

Étape 2: déterminer le numéro de fichier

Pour déterminer le numéro de fichier auquel nous nous référons, déclarez une autre variable comme Integer.

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub 

Étape 3: attribuer le chemin du fichier

Maintenant, pour la variable Path, attribuez le chemin du fichier avec un nom de fichier.

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Modifiez le chemin selon vos besoins End Sub 

Étape 4: attribuer une fonction de fichier gratuit

Maintenant, pour la variable Numéro de fichier, attribuez la fonction «Fichier libre» pour stocker un numéro de fichier unique.

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Modifiez le chemin selon vos besoins FileNumber = FreeFile End Sub 

Étape 5: Ouvrez le fichier texte

Nous devons maintenant ouvrir le fichier texte pour travailler avec lui. Comme je l'ai expliqué, nous devons utiliser l'instruction OPEN pour ouvrir le fichier texte.

Étape 6: Utilisez la méthode d'impression / écriture

Une fois le fichier ouvert, nous devons y écrire quelque chose. Pour écrire dans le fichier texte, nous devons utiliser la méthode «Écrire» ou «Imprimer».

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Modifiez le chemin selon vos besoins FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, " Bienvenue "Print #FileNumber", à "Print #FileNumber," VBA "End Sub 

Tout d'abord, nous devons mentionner le numéro de fichier (ici, nous avons attribué le fichier via la variable «FileNumber»), puis nous devons ajouter le contenu que nous voulons ajouter à un fichier texte.

Étape 7: Enregistrer et fermer le fichier texte

Une fois que le contenu est écrit dans un fichier texte, nous devons enregistrer et fermer le fichier texte.

Code:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Modifiez le chemin selon vos besoins FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, " Bienvenue "Imprimer #FileNumber", "Imprimer #FileNumber," VBA "Fermer FileNumber End Sub 

Maintenant, exécutez le code manuellement ou via la touche de raccourci Excel F5, il écrira le contenu mentionné dans le fichier texte mentionné.

Exemple # 2

Nous allons maintenant voir comment écrire les données d'une feuille Excel dans un fichier texte.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example define two more variables as Integer to find the last row and last column.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub 

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now to loop through columns open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this apply IF statement in VBA.

Step 9: Now save and close the text file.

This code will write the details to a text file, but to open the text file after written we need to use the below code.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:\Excel Files\VBA File\Hello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i  LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub 

So, run the code using the F5 key or manually then, it will copy the data like the below.