Excel VBA FreeFile

À quelle fréquence en tant qu'utilisateur Excel, vous ouvrez un fichier et travaillez dessus? Très souvent, non? Il est à nouveau possible d'automatiser les tâches d'ouverture du fichier dans Excel à l'aide d'un puissant outil VBA qui vous permet d'écrire des macros et automatise finalement toutes les tâches à partir de l'ouverture d'un fichier à partir d'un emplacement donné pour l'utiliser, l'enregistrer et le fermer sur le même chemin. Tout en parlant de l'automatisation du processus d'ouverture et de fermeture de fichiers via VBA, il devient très important d'indexer le fichier afin que le système puisse identifier le fichier à utiliser au moment de l'exécution. Nous avons une fonction disponible dans VBA nommée FreeFile qui sert à cet effet.

Qu'est-ce que la fonction VBA FreeFile?

VBA FreeFile est une fonction classée sous la fonction VBA qui permet au système de réserver un numéro pour le prochain fichier à ouvrir sous la sortie d'entrée de fichier VBA pour une expérience de codage fluide et réduisant les bogues inutiles dans votre code. Lorsque vous ouvrez un fichier via VBA File IO (Input / Output), il devient absolument obligatoire d'attribuer un numéro unique à ce fichier car vous pouvez avoir plusieurs fichiers à l'emplacement que vous vous apprêtez à utiliser pour lire, écrire et ouvrir le but via votre code. Comment le système sait-il quel fichier parmi tous ceux que vous souhaitez ouvrir? La fonction VBA FreeFile identifie le numéro unique que nous attribuons au fichier et le rend disponible pour que vous puissiez l'ouvrir, le lire ou l'écrire dans VBA.

La syntaxe de la fonction FreeFile est la suivante:

Cette fonction ne prend qu'un seul argument RangeNumber dont les valeurs standard sont zéro (0) et un (1). Si vous spécifiez zéro, le numéro de fichier sera attribué par le biais de la plage de numéros 1 à 255 pas à pas pour chaque fichier que vous ouvrez. Si vous en spécifiez un, le numéro de fichier sera attribué par intervalles de 256 à 511 pour chaque fichier que vous ouvrez. Si aucun RangeNumber n'est spécifié, zéro sera considéré par défaut.

Comment utiliser la fonction FreeFile dans Excel VBA?

Voici les différents exemples d'utilisation de la fonction FreeFile dans Excel VBA.

Vous pouvez télécharger ce modèle Excel VBA FreeFile ici - Modèle Excel VBA FreeFile

VBA FreeFile - Exemple # 1

Suivez les étapes ci-dessous pour utiliser la fonction FreeFile dans Excel VBA.

Étape 1: ouvrez un nouvel éditeur Visual Basic (VBE) en cliquant sur le bouton Visual Basic sous l'onglet développeur présent dans votre fichier Excel ou en appuyant simultanément sur le bouton Alt + F11 .

Étape 2: insérez un nouveau module dans le VBE. Cliquez sur le bouton Insérer . Sélectionnez Module dans la liste des options disponibles dans Insérer.

Étape 3: définissez une nouvelle sous-procédure pouvant contenir votre macro.

Code:

 Sub Example_1 () End Sub 

Étape 4: définissez deux nouvelles variables, file_1 et file_2 comme un entier. Ces deux variables contiendront les numéros que nous attribuons à chaque fichier que nous ouvrons tout au long de la macro.

Code:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer End Sub 

Étape 5: Utilisez l'opérateur d'affectation pour affecter la valeur entière 1 à la variable file_1 à l'aide de VBA FreeFile.

Code:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile End Sub 

Étape 6: Maintenant, utilisez l'instruction Open qui peut être utilisée pour ouvrir un fichier dans VBA.

Code:

 Sous-exemple_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 End Sub 

Ici, nous avons spécifié le chemin sur lequel se trouve le fichier. L'instruction For vous donne des options comme la façon dont vous souhaitez ouvrir le fichier (par exemple en tant que sortie) et l'instruction As spécifie le numéro de fichier que nous avons spécifié à l'aide de l'instruction FreeFile.

Étape 7: Suivez les étapes 5 et 6 pour attribuer un nouveau numéro au deuxième fichier via la variable file_2 et ouvrez-le.

Code:

 Sous-exemple_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" For Output En tant que file_2 End Sub 

Étape 8: Maintenant, nous aimerions voir les numéros qui sont réellement attribués aux deux fichiers texte. Vous pouvez exécuter chaque ligne une par une à l'aide de la touche F8. Cependant, la sortie ne sera pas visible pour vous. Ni dans le fichier Excel ni dans la fenêtre Exécution. Veuillez ajouter l'instruction MsgBox suivante qui affiche une boîte de message avec les numéros de chaque fichier.

Code:

 Sous-exemple_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" For Output Comme file_2 MsgBox "La valeur pour file_1 est:" & file_1 & Chr (13) & "La valeur pour file_2 est:" & file_2 End Sub 

Dans cette ligne de code, la première ligne de la boîte de message contiendra le texte «la valeur du fichier_1 est:» et la valeur numérique attribuée à l'aide de la fonction FreeFile. Chr (13) permet à la ligne suivante d'apparaître. La ligne suivante de la boîte de message indique «La valeur du fichier_2 est:» et le numéro attribué au deuxième fichier.

Étape 9: exécutez ce code en appuyant sur le bouton Exécuter ou en appuyant sur la touche F5.

C'est ainsi que la fonction FreeFile vous permet d'attribuer le numéro au fichier que vous allez ouvrir, lire, fermer via VBA.

VBA FreeFile - Exemple # 2

Si nous fermons le fichier que nous ouvrons à chaque fois, le nouveau fichier que nous ouvrirons aura toujours un numéro de série égal à 1 à chaque ouverture. Suivez les étapes ci-dessous pour le voir à travers.

Étape 1: définissez une nouvelle sous-procédure pouvant contenir votre macro.

Code:

 Sub Example_2 () End Sub 

Étape 2: Définissez deux variables file_1 et file_2 comme un entier dans la sous-procédure nouvellement définie.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer End Sub 

Étape 3: Maintenant, utilisez FreeFile pour attribuer un numéro au fichier donné et l'instruction Open pour ouvrir ce fichier via l'emplacement où nous l'avons.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 End Sub 

Étape 4: utilisez une instruction MsgBox pour ajouter une boîte de message pour le nombre des premiers fichiers.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 MsgBox "La valeur pour file_1 est:" & file_1 End Sub 

Étape 5: utilisez une instruction Close pour fermer le premier fichier que vous avez ouvert via VBA.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 MsgBox "La valeur pour file_1 est:" & file_1 Close file_1 End Sub 

Étape 6: Maintenant, suivez la même procédure qu'à l'étape 5, étape 6, étape 7 mais pour le deuxième fichier. Il comprend l'attribution de valeur à la variable file_2 à l'aide de la fonction FreeFile et son ouverture à l'aide de l'instruction Open, l'utilisation de MsgBox pour afficher le numéro de fichier du deuxième fichier et enfin la fermeture du deuxième fichier.

Code:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 MsgBox "La valeur pour file_1 est:" & file_1 Close file_1 file_2 = FreeFile Open "D : \ Rédaction de contenu Excel \ TextFile_2.txt "Pour la sortie en tant que MsgBox file_2" La valeur pour file_2 est: "& file_2 Fermer file_2 End Sub 

Étape 7: exécutez ce code en appuyant sur le bouton Exécuter ou sur F5.

La première boîte de message représente la valeur de fichier_1 qui semble être 1. La deuxième boîte de message représente la valeur de fichier_2 qui semble également être 1. Cette modification est là parce que nous avons utilisé l'instruction close pour fermer les fichiers un par un. En raison de quoi, lors de l'initialisation d'un nouveau fichier, chaque fois que l'ancien fichier et son numéro disparaissent de la mémoire système, le fichier suivant sera considéré comme un nouveau fichier avec des numéros commençant à 1.

Choses dont il faut se rappeler

  • FreeFile retourne un entier unique à chaque fichier que nous ouvrons, lisons, fermons via VBA File IO.
  • FreeFile a deux valeurs pour l'argument RangeNumber (qui est facultatif). Zéro attribue généralement le nombre compris entre 1 et 255 et un attribue les nombres de 256 à 511.

Articles recommandés

Ceci est un guide de VBA FreeFile. Ici, nous discutons de la façon dont la fonction FreeFile vous permet d'attribuer le numéro au fichier que vous allez ouvrir, lire, fermer via Excel VBA avec des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Le fichier de vérification VBA existe | Modèle Excel
  2. Indice VBA hors de portée (exemples)
  3. Fonction GetObject dans Excel VBA
  4. Comment utiliser le format numérique dans VBA?
  5. VBA Environ

Catégorie: