Fichier texte d'écriture VBA - Écrire des données Excel dans des fichiers texte à l'aide du code 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 plus 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

Ouvrir (chemin du 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 effectivement é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 fichier 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.

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 des numéros de fichier uniques.

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. 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 FilesVBA FileHello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" End Sub

First, we need to mention the file number (here we have assigned the file through the “filenumber” variable), then we need to add the content we want to add to a text file.

Step 7: Save and Close Text File

Once the content is written in a text file, we need to save and close the text file.

Code:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:Excel FilesVBA FileHello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" Close FileNumber End Sub

Now, run the code this manually or through shortcut excel key F5. It will write the mentioned content in the mentioned text file.

Example #2

Now we will see how to write the data of excel sheet to a text file.

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 the 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 FilesVBA FileHello.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

Alors, exécutez le code à l'aide de la touche F5 ou manuellement. Ensuite, il copiera les données ci-dessous.

Articles intéressants...