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)
- Fusionner plusieurs fichiers PDF avec Python - mardi 23 juillet 2024
- Révisez les comptes d’une entreprise à partir de son FEC - lundi 15 juillet 2024
- Clôtures comptables : analysez vos FEC avant de les archiver… - dimanche 30 juin 2024
- Excel : collecter des données juridiques sur les entreprises avec l’API SIRENE – 2ème partie : base SIRET (établissements) - lundi 27 mai 2024
- Analyse de données & FEC provisoire : créer des numéros d’écriture avec un script Python - samedi 27 avril 2024