Dans notre quotidien professionnel, nous devons fréquemment réaliser des tâches répétitives avec des desseins plus ou moins complexes. Par exemple, dans le cadre d’un reporting mensuel, collecter les balances d’un groupe de sociétés, les ouvrir, les mettre en forme pour enfin les analyser. Prises isolément, ces tâches ne prennent pas beaucoup de temps mais répétées, elles sont non seulement chronophages mais également sans aucune valeur ajoutée. L’automatisation de ces tâches sera utilement mise en œuvre afin de focaliser le maximum de temps homme sur la phase d’analyse de données, de loin la plus valorisante.
Sub AfficheMatrice() Dim détenteur As Integer Dim détenu As Integer classeurAppli.Sheets.Add after:=Worksheets(Worksheets.Count) With classeurAppli.Sheets(classeurAppli.Sheets.Count) .Cells(1, 1).Value = "Matrice I-M" For détenteur = 1 To NbEntités For détenu = 1 To NbEntités If détenteur = 1 Then .Cells(1, détenu + 1).Value = Entités(détenu) .Cells(3 + NbEntités, détenu + 1).Value = Entités(détenu) End If If détenu = 1 Then .Cells(détenteur + 1, 1).Value = Entités(détenteur) .Cells(détenteur + NbEntités + 3, 1).Value = Entités(détenteur) End If .Cells(détenteur + 1, détenu + 1).Value = MatriceImoinsDétentions(détenteur, détenu) Next détenu Next détenteur .Cells(3 + NbEntités, 1).Value = "Matrice (I-M)^-1" .Range("B" & 4 + NbEntités & ":" & Chr(64 + NbEntités + 1) & NbEntités * 2 + 3).FormulaArray = "=minverse(B2:" & Chr(64 + NbEntités + 1) & NbEntités + 1 & ")" 'FormulaArray équivaut à Ctrl+Maj+Entrée For détenu = 2 To NbEntités PourcentagesIntérêt(détenu) = Cells(4 + NbEntités, détenu + 1) Next détenu End With End Sub
La phase de réflexion préalable revêt une importance primordiale. Elle consiste à modéliser le problème à résoudre, c’est-à-dire, à choisir la solution la mieux adaptée (éventuellement la plus simple à programmer et offrant le meilleur gain de temps) puis à décomposer la solution retenue en étapes élémentaires qui chacune feront l’objet d’une codification informatique.
Sur les projets les plus complexes, cette phase représente un investissement important mais loin de constituer une perte de temps, elle est la garantie du succès de la réalisation du projet. Une fois le programme terminé, les gains de temps obtenus sont largement bénéfiques.
Dans les métiers de la comptabilité, la mise en œuvre d’un programme passe généralement par le langage VBA en lien avec Excel et/ou ACCESS, car ce langage est simple à programmer et permet de traiter de conséquents volumes de données.
Il y a quelques années, je cherchais une solution pour calculer rapidement les pourcentages d’intérêt en présence de participations croisées dans le cadre de la validation des comptes consolidés de groupes de sociétés. Le calcul matriciel semblait la solution la plus adaptée. D’ailleurs, le Memento Comptes consolidés évoque la programmation en langage Basic du calcul matriciel, en se gardant toutefois bien d’en fournir une solution opérationnelle. J’avais déjà mis en œuvre cette solution pour résoudre des systèmes d’équations il y a bien longtemps. La modélisation du problème m’a permis de résoudre rapidement la phase de programmation de cette tâche.
Extrait du Memento Comptes consolidés (Editions Francis Lefebvre) :
4324-2 | Mise en oeuvre du calcul Grâce à des programmes informatiques, nous pouvons obtenir directement les résultats du calcul des pourcentages d’intérêts. Nous ne développons pas ci-après d’exemples de programmes informatiques. Cependant, à l’aide d’un programme de calcul matriciel des participations écrit en Basic et exploité sur un micro-ordinateur, nous obtenons la matrice suivante :
|
Derniers articles parBenoît RIVIERE (voir tous)
- Nouveautés de l’interpréteur de formules de calcul (v1.1) - dimanche 3 novembre 2024
- Dématérialisation de la facturation : nouvelles mentions obligatoires - lundi 28 octobre 2024
- Interpréteur de formules de calcul en Python - dimanche 13 octobre 2024
- Les données de la facturation électronique - mercredi 9 octobre 2024
- VBA/SQL vs Power Query : deux solutions complémentaires - mercredi 2 octobre 2024
Bonjour Benoît,
Je suis étudiant en DSCG et je travaille dans le contrôle de gestion (ETI industrielle).
Je me rends compte chaque jour du gain de productivité que pourrait apporter la programmation (principalement le VBA) dans le contrôle de gestion de mon entreprise.
Je pense à me former dans le VBA, pour compléter mon cursus comptable et financier car comme vous le dites, la programmation permet de réels gains de productivité et le recentrage sur les activités créatrices de valeur.
De plus, il s’agirait d’une réelle plus-value dans mon CV et je pense que la maîtrise de la programmation pourrait rendre le travail de contrôleur de gestion plus intéressant.
Merci pour cet article !
Maxime