Gestion des fichiers, Excel VBA
Voici une explication détaillée avec le code VBA sur la gestion des fichiers dans Excel, en utilisant les méthodes Open, Close et Save.
1. Ouvrir un Fichier en VBA
En VBA, vous pouvez ouvrir un fichier existant en utilisant l’instruction Open. Cela permet d’ouvrir un fichier en différents modes (lecture, écriture, ajout, etc.), ce qui vous permet de lire ou d’écrire dans le fichier. L’utilisation la plus courante de l’instruction Open concerne les fichiers texte (par exemple .txt, .csv, etc.), mais elle peut également être utilisée pour ouvrir d’autres types de fichiers dans des contextes spécifiques.
Syntaxe pour ouvrir un fichier
Open cheminDuFichier For mode As #numéroDeFichier
- cheminDuFichier : Le chemin complet du fichier que vous souhaitez ouvrir.
- mode : Le mode dans lequel vous souhaitez ouvrir le fichier. Il peut être l’un des suivants :
- Input : Ouvre le fichier en lecture.
- Output : Ouvre le fichier en écriture (crée un nouveau fichier ou écrase l’existant).
- Append : Ouvre le fichier en mode ajout (les nouvelles données seront ajoutées à la fin du fichier).
- numéroDeFichier : Un identifiant de fichier (un numéro) qui est utilisé pour référencer le fichier. Ce numéro doit être compris entre 1 et 511.
Exemple d’ouverture d’un fichier en mode lecture (Input)
Sub OuvrirFichierEnLecture() Dim numéroDeFichier As Integer Dim cheminDuFichier As String Dim ligneFichier As String ' Définir le chemin du fichier texte cheminDuFichier = "C:\chemin\vers\ton\fichier.txt" ' Obtenir un numéro de fichier libre numéroDeFichier = FreeFile ' Ouvrir le fichier en mode lecture Open cheminDuFichier For Input As #numéroDeFichier ' Lire le fichier ligne par ligne Do Until EOF(numéroDeFichier) Line Input #numéroDeFichier, ligneFichier Debug.Print ligneFichier ' Affiche le contenu dans la fenêtre Immediate Loop ' Fermer le fichier après lecture Close #numéroDeFichier End Sub
Explication :
1. On définit d’abord le cheminDuFichier vers le fichier à ouvrir.
2. FreeFile est utilisé pour obtenir un numéro de fichier non utilisé afin d’éviter les conflits lors de l’ouverture du fichier.
3. L’instruction Open ouvre le fichier en mode « Input », ce qui signifie que le fichier est ouvert en lecture.
4. La boucle Do Until EOF lit le fichier ligne par ligne jusqu’à la fin du fichier (EOF).
5. Après la lecture, l’instruction Close est utilisée pour fermer le fichier.
2. Fermer un Fichier en VBA
Une fois que vous avez terminé de travailler avec un fichier, il est important de le fermer pour libérer les ressources. Cela se fait avec l’instruction Close.
Syntaxe pour fermer un fichier
Close #numéroDeFichier
- numéroDeFichier : Le numéro de fichier qui a été attribué lors de l’ouverture du fichier.
Exemple de fermeture d’un fichier :
Sub FermerFichier() Dim numéroDeFichier As Integer Dim cheminDuFichier As String ' Définir le chemin du fichier texte cheminDuFichier = "C:\chemin\vers\ton\fichier.txt" ' Obtenir un numéro de fichier libre numéroDeFichier = FreeFile ' Ouvrir le fichier en mode lecture Open cheminDuFichier For Input As #numéroDeFichier ' Fermer le fichier immédiatement après l'avoir ouvert (exemple) Close #numéroDeFichier End Sub
Explication :
- L’instruction Close #numéroDeFichier ferme le fichier après avoir terminé de lire ou d’écrire.
- Dans cet exemple, nous ouvrons le fichier et le fermons immédiatement, ce qui est souvent fait après avoir terminé des opérations.
3. Sauvegarder un Fichier en VBA
En ce qui concerne la sauvegarde d’un fichier en VBA, la méthode Save s’applique principalement aux objets Workbook (c’est-à-dire les classeurs Excel) ou lorsque vous écrivez des données dans des fichiers texte ou d’autres formats.
Sauvegarder un Classeur
Pour sauvegarder un classeur, vous pouvez utiliser la méthode Save.
Syntaxe pour sauvegarder un classeur
Workbooks("NomDuClasseur.xlsx").Save
Cela enregistre le classeur dans son emplacement et format actuels.
Sauvegarder un Classeur sous un Nouveau Nom ou Emplacement
Workbooks("NomDuClasseur.xlsx").SaveAs "C:\chemin\vers\nouveau\fichier.xlsx"
Cela sauvegarde le classeur dans un nouvel emplacement ou avec un nom différent.
Exemple : Sauvegarder un Classeur
Sub SauvegarderClasseur() ' Sauvegarder le classeur avec le nom actuel ThisWorkbook.Save ' Sauvegarder le classeur sous un nouveau nom et emplacement ThisWorkbook.SaveAs "C:\chemin\vers\enregistrer\nouveauFichier.xlsx" End Sub
Explication :
ThisWorkbook.Save
: Sauvegarde le classeur où le code VBA est exécuté.ThisWorkbook.SaveAs
: Sauvegarde le classeur sous un nouveau nom ou dans un nouvel emplacement.
4. Sauvegarder un Fichier Texte
Si vous travaillez avec des fichiers texte et que vous souhaitez sauvegarder des données, vous utiliserez l’instruction Print # pour écrire dans le fichier et l’instruction Close pour finaliser et sauvegarder le fichier.
Exemple d’écriture dans et sauvegarde d’un fichier texte
Sub SauvegarderFichierTexte() Dim numéroDeFichier As Integer Dim cheminDuFichier As String ' Définir le chemin du fichier texte cheminDuFichier = "C:\chemin\vers\ton\fichier.txt" ' Obtenir un numéro de fichier libre numéroDeFichier = FreeFile ' Ouvrir le fichier en mode écriture (cela va écraser le fichier si il existe déjà) Open cheminDuFichier For Output As #numéroDeFichier ' Écrire des données dans le fichier Print #numéroDeFichier, "Bonjour le monde !" ' Écrire une ligne dans le fichier Print #numéroDeFichier, "Ceci est un exemple de gestion de fichiers en VBA." ' Fermer le fichier pour sauvegarder les modifications Close #numéroDeFichier End Sub
Explication :
- Open cheminDuFichier For Output As #numéroDeFichier : Ouvre le fichier en mode écriture (et crée un nouveau fichier si celui-ci n’existe pas).
- Print #numéroDeFichier, « données » : Écrit des données dans le fichier.
- Close #numéroDeFichier : Ferme le fichier et sauvegarde les modifications.
Conclusion
En résumé, la gestion des fichiers en VBA dans Excel se compose des éléments principaux suivants :
1. Ouvrir un fichier : Vous pouvez ouvrir un fichier en différents modes avec l’instruction Open (Input, Output, Append).
2. Lire/Écrire des données : Utilisez Line Input pour lire des lignes ou Print pour écrire des données dans un fichier.
3. Fermer un fichier : Utilisez l’instruction Close pour fermer un fichier après avoir terminé vos opérations.
4. Sauvegarder un classeur : Utilisez Save pour sauvegarder un classeur ou SaveAs pour le sauvegarder sous un nouveau nom ou emplacement.
En maîtrisant ces commandes, vous pourrez gérer efficacement les fichiers en VBA dans Excel.