Dans cet article, nous avons partagé le code VBA pour écrire une fonction personnalisée pour extraire le nom de fichier et le nom de dossier du chemin du fichier.

Les données brutes de cet exemple spécifient le chemin complet de certains fichiers.

RawData

Explication logique

Dans cet exemple, nous avons créé la fonction personnalisée VBA «FileOrFolderName» qui renvoie le nom du fichier ou du dossier en sortie.

La fonction «FileOrFolderName» prend deux paramètres en entrée. Le premier paramètre prend le chemin du fichier comme entrée. Le deuxième paramètre prend une valeur booléenne en entrée, si nous voulons un nom de fichier en sortie, nous attribuerons une valeur Vrai à ce paramètre et si nous voulons un nom de dossier en sortie, nous attribuerons une valeur False à ce paramètre.

Pour séparer le nom du fichier et le nom du dossier du chemin du fichier, nous trouvons tout d’abord l’emplacement de la dernière occurrence du séparateur de chemin dans le chemin du fichier. Après la dernière occurrence du séparateur de chemin, nous pouvons facilement séparer le nom du fichier et le nom du dossier sous forme de texte. Sur le côté droit du séparateur de chemin se trouve le nom du fichier et le texte sur le côté gauche du séparateur de chemin est le nom du dossier.

Si aucun séparateur de chemin n’existe dans le chemin du fichier, le chemin du répertoire par défaut est spécifié comme nom de dossier.

Exécution de la fonction personnalisée

Pour utiliser la fonction personnalisée définie, accédez à la cellule C14 et entrez la fonction = FileOrFolderName (B14, FALSE) et dans la cellule D14, entrez la fonction = FileOrFolderName (B14, TRUE), où la cellule B14 contient le chemin du fichier.

La cellule C14 donnera le nom du dossier et la cellule D14 donnera le nom du fichier.

ArrowAfterRunningMacro

Veuillez suivre ci-dessous pour le code

Function FileOrFolderName(InputString As String, _

ReturnFileName As Boolean) As String



'Returns the foldername or the filename based on boolean value assigned

Dim i As Integer, FolderName As String, FileName As String

i = 0

'Code used for finding the position of last occurence of path separator

While InStr(i + 1, InputString, Application.PathSeparator) > 0

i = InStr(i + 1, InputString, Application.PathSeparator)

Wend

'Extract the folder path

'If No occurence of path separator is found then assign the default directory path

If i = 0 Then

FolderName = CurDir

Else

FolderName = Left(InputString, i - 1)

End If

'Extracting the file name

FileName = Right(InputString, Len(InputString) - i)

'Returning the folder or file name from function based on ReturnFileName parameter

If ReturnFileName Then

FileOrFolderName = FileName

Else

FileOrFolderName = FolderName

End If

End Function

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]