Fonction VBA DIR

Fonction Excel VBA DIR

La fonction VBA DIR est également connue sous le nom de fonction de répertoire, il s'agit d'une fonction intégrée dans VBA qui est utilisée pour nous donner le nom de fichier d'un fichier ou d'un dossier donné, mais nous devons fournir le chemin du fichier, la sortie renvoyée par ce function est une chaîne car elle renvoie le nom du fichier, il y a deux arguments à cette fonction qui sont le nom du chemin et les attributs.

La fonction DIR renvoie le tout premier nom de fichier dans le chemin du dossier spécifié. Par exemple, dans votre lecteur D si vous avez un nom de dossier appelé 2019 et dans ce dossier, si vous excelez un fichier nommé «2019 Sales», vous pouvez accéder à ce fichier en utilisant la fonction DIR.

La fonction «VBA DIR» est très utile pour obtenir le nom du fichier en utilisant son répertoire de chemin.

Syntaxe

Cette fonction a deux arguments facultatifs.

  • [Nom du chemin]: comme nom, indiquez le chemin d'accès au fichier. Cela peut être le nom du fichier, le nom du dossier ou le répertoire. Si aucun chemin n'est attribué, je retournerai une valeur de chaîne vide, c'est-à-dire «»
  • [Attributs]: Ceci est également un argument facultatif et vous ne pouvez pas l'utiliser très souvent dans le codage. Vous pouvez spécifier l'attribut du fichier dans le [Nom du chemin] et la fonction DIR ne recherche que ces fichiers.

Par exemple: si vous souhaitez accéder uniquement aux fichiers cachés, si vous souhaitez accéder uniquement aux fichiers en lecture seule etc… nous pouvons spécifier dans cet argument. Voici les attributs que nous pouvons utiliser.

Exemples d'utilisation de la fonction VBA DIR

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

Exemple # 1 - Accès au nom de fichier à l'aide de la fonction DIR

Je vais vous expliquer l'exemple simple d'accès au nom de fichier à l'aide de la fonction DIR. Suivez les étapes ci-dessous.

Étape 1: Créez un nom de macro.

Étape 2: définissez la variable comme chaîne .

Code:

 Sub Dir_Example1 () Dim MyFile As String End Sub 

Étape 3: Maintenant, pour cette variable, nous allons attribuer une valeur en utilisant la fonction DIR .

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir (End Sub 

Étape 4: Maintenant, copiez et collez le chemin du dossier de fichiers sur votre ordinateur. Mentionnez le chemin entre guillemets.

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template End Sub 

Étape 5: J'ai mentionné mon chemin d'accès au dossier, nous devons maintenant mentionner le nom du fichier et son extension. Pour faire cette première chose que nous devons faire est de mettre une barre oblique inverse après le chemin (\)

Après avoir entré la barre oblique inverse, nous devons entrer le nom complet du fichier .

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub 

Étape 6: affichez la valeur de la variable dans la boîte de message.

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub 

Maintenant, exécutez le code et voyez quel est le résultat de la boîte de message.

La fonction DIR a donc renvoyé le nom du fichier avec l'extension de fichier.

Exemple # 2 - Ouvrir un fichier en utilisant la fonction DIR

Maintenant, comment ouvrir le fichier? Cette fonction peut renvoyer le nom de fichier, mais l'ouverture de ce fichier est un processus un peu différent. Suivez les étapes ci-dessous pour ouvrir le fichier.

Étape 1: créez deux variables sous forme de chaîne .

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String End Sub 

Étape 2: Maintenant, pour la variable FolderName , attribuez le chemin du dossier.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" End Sub 

Étape 3: Maintenant, pour la variable FileName, nous devons obtenir le nom du fichier en utilisant la fonction DIR .

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (End Sub 

Étape 4: Maintenant, pour le nom du chemin, nous avons déjà attribué un chemin à la variable FolderPath, nous pouvons donc directement fournir la variable ici.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName End Sub 

Étape 5: Nous devons maintenant fournir le nom du fichier. En utilisant le symbole esperluette (&), attribuez le nom du fichier.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") End Sub 

Étape 6: Utilisez maintenant la méthode WORKBOOKS.OPEN .

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open End Sub 

Étape 7: le nom de fichier est une combinaison de chemin de dossier et de nom de fichier . Alors combinez ces deux.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub 

Maintenant, exécutez ce code, il ouvrira le nom de fichier mentionné.

Exemple # 3 - Ouvrir plusieurs classeurs à l'aide de la fonction DIR

Actually, we can access all the workbooks in the folder. In order to access each and every file we cannot mention all the file names directly, but we can use the wildcard character to refer the file.

The asterisk (*) is one of those wildcard characters. It identifies any number of characters. For example, if you want to access all the macro files in the folder you can use the asterisk as the wildcard i.e. “*.xlsm*”

Here * will match any file name with the extension of the file is equal to “xlsm”.

Code:

 Sub Dir_Example3() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "*.xlsm*") Do While FileName  "" Workbooks.Open FolderName & FileName FileName = Dir() Loop End Sub 

Now the above code will open all the files in the folder path.

FileName = Dir() the reason why I have used this line because, in order to access the next file in the folder, we have to make the existing file name to nil. The moment we make the existing file name to nil when the loop runs for the second time it will take the next file in the folder.

Example #4 – Get all the File Names in the Folder

Suppose if you want the list of all the file names in the folder we can also do this by using attributes.

Code:

 Sub Dir_Example4() Dim FileName As String FileName = Dir("E:\VBA Template\", vbDirectory) Do While FileName  "" Debug.Print FileName FileName = Dir() Loop End Sub 

Make the immediate window visible by pressing Ctrl + G.

Now run the code we will get all the file names in the immediate window.