EXCEL, VBA : naviguer dans l’arborescence d’un disque dur pour accéder à un dossier situé en amont

L’analyse de données nécessite fréquemment l’ouverture de fichiers. Lorsque les fichiers ne sont pas stockés dans le même dossier que l’application, le programme doit pointer sur le dossier spécifique. Quand ces données sont localisées dans un sous-dossier de l’application, il suffit d’ajouter le nom de ce dossier au chemin d’accès à l’application (dans le cas d’EXCEL, ce chemin est fourni par « ThisWorkbook.Path »). Par contre, si les données sont stockées dans un dossier situé en amont, il est nécessaire de remonter l’arborescence, ce qui est moins évident à programmer.

Exemple d’arborescence : dossiers de commissariat aux comptes stockés sur un serveur

Prenons l’exemple d’une arborescence où pour chaque client, nous avons en sous-dossiers :

  • les dossiers exercice (2009, 2010…) avec dans chacun d’eux, l’application d’audit de l’année (dossier AppliAUDIT),
  • et le dossier permanent (DP).

Exemple d’arborescence :

NIVEAU 1 NIVEAU 2 NIVEAU 3
\Nom du client
\DE 31122009
\DE31122010
\AppliAUDIT
[ …]
\DP

Pour que l’application d’audit (dossier AppliAUDIT) accède au DP (pour collecter les informations permanentes nécessaires à la constitution du dossier exercice), il est nécessaire de remonter de deux niveaux dans l’arborescence.

Fonction permettant de remonter dans l’arborescence du système de fichiers

La fonction suivante remonte d’un cran dans l’arborescence. Dans le cas qui nous occupe, pour qu’elle remonte de deux crans, il suffit de l’appeler deux fois.

Code-source de la fonction :

Function CheminAmont(chemin as String)

    CheminAmont = Mid(chemin, 1, InStrRev(chemin, "\") - 1)

End Function

Explication de la fonction :

Cette fonction retourne (« CheminAmont= ») la partie (« Mid(…) ») du chemin (stocké dans la variable « chemin ») entre le premier caractère (« ,1, ») et le premier « \ » (“InStrRev(…)“) situé le plus à droite.

Dans notre exemple, la variable « chemin » est égal à « C:\Nom du client\DE 31122010\AppliAUDIT ». L’appel de la fonction générera le résultat suivant : « C:\Nom du client\DE 31122010 ».

Pour accéder au DP, il suffit d’exécuter le code suivant :

CheminDP= CheminAmont(CheminAmont(ThisWorkbook.Path)) & "\DP"

Approfondir le sujet : programmer en VBA

Share Button
The following two tabs change content below.
Après seize années passées en cabinet d’expertise-comptable et de commissariat aux comptes (où j’ai exercé comme expert-comptable et chef de mission audit), j’ai pris le poste de directeur comptable d’un groupe de distribution automobile en novembre 2014. Au cours de ma carrière, j’ai acquis une expérience significative en audit et en exploitation des systèmes d’information (analyse de données, automatisation des tâches, programmation informatique) au service de la production des comptes annuels et consolidés. C’est cette expérience personnelle et ma passion pour l’informatique que je partage sur ce blog. Mon CV / Réalisations personnelles et projets informatiques / Ma collection / Me contacter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.