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
Derniers articles parBenoît RIVIERE (voir tous)
- Lancer l’exécution d’un script Python à partir d’une macro VBA - lundi 9 septembre 2024
- Open Data : quoi de neuf ? - lundi 2 septembre 2024
- Auditsi cité dans le podcast Marketing du cabinet comptable - mercredi 21 août 2024
- IA générative : aide à la rédaction de prompts efficaces - samedi 17 août 2024
- S’initier à l’analyse de données et l’automatisation des tâches - dimanche 11 août 2024