Excel est un "couteau suisse" de la gestion, mais il peut aussi servir d'assise à des développements conséquents avec l'aide de VBA. Toutes les opérations que l'on fait manuellement avec Excel peuvent être automatisées. Filtrage complexes de données, création de graphiques, création de tableaux croisés dynamiques, création de devis, de factures et autres documents commerciaux, de relevés de présences, de feuilles de payes, de synthèses trimestrielles pour les cotisation sociales, de tableaux de bords en tous genre, d'analyses de laboratoires, de productions industrielles, etc.
Le premier usage du VBA dans Excel se fait avec l'enregistreur de macros. Ces macros génèrent du code VBA séquentiel qui permettent de ré-éxécuter une séquences de manipulations.
Les macros sont aussi utiles pour générer des "bouts" de programmes à intégrer dans un programme plus vaste, notamment quand il s'agit de formatages de feuilles (cellules, colonnes et lignes, qui font appels à des instructions et des propriétés multiples à renseigner. Il est plus simple de le faire manuellement en enregistrant la macro et de récupérer le code VBA généré.
Excel dispose de plusieurs centaines de fonctions. Mais elles ne sont pas toujours suffisantes ou ne réalisent pas exactement ce que l'on veut. L'une des possibilités du VBA sous Excel est de se fabriquer ses propres fonctions "personnalisées", utilisable dans les feuilles de calcul comme n'importe quelle fonction standard d'Excel.
On peut par exemple se fabriquer une fonction qui calcule une surface en fonction de valeurs saisies dans une ou plusieurs cellules. On peut créer des fonctions de calcul de TVA, d'intérêts complexes, etc.
Quel que soit le type acquisition des données, Excel VBA permet de les saisir, de les analyser et de les traiter en réduisant des manipulations complexes à un ou deux clics de souris. Si nécessaire, à partir d'Excel, il est parfaitement possible d'extraire automatiquement des données d'un système de base de données, dont bien entendu Access.
Chaque manipulation a son instruction correspondante dans VBA et de plus VBA dispose de tous les éléments d'un langage structuré, événementiel, partiellement objet comme tout langage moderne. On dispose aussi en VBA d'un type d'objet différent des feuilles de calcul qui permet de créer des "formulaires" de menu et de boites de dialogue, des dispositions en fiches plutôt qu'en tableau. N'importe quel type de développement peut être envisagé sur la base d'Excel.
L'intérêt d'Excel pour les applications VBA est qu'une fois les automatismes déclenchés... il est encore possible de traiter manuellement et ponctuellement telle ou telle feuille de calcul modifiée ou générée par le VBA, comme on le ferait avec n'importe quel classeur Excel.
Comme pour toute application informatique, tout commence par une analyse du processus à automatiser.
Exemple d'une application de paye que j'ai réalisée pour une petite association qui emploie un salarié à temps partiel. Cette application permet à une personne qui ne connaît pas Excel de faire la paye chaque mois en quelques minutes. Les données sont synthétisées automatiquement par trimestre et par an pour les déclarations (calcul de la réduction Fillon etc....).
Exemple d'une application de gestion de factures pour un auto-entrepreneur :
On sélectionne un client dans la liste. En cliquant sur "Nouvelle facture" on crée une feuille de plus dans le classeur pour la nouvelle facture, comportant automatiquement les coordonnées du client, sa numérotation, la date du jour, etc. l'onglet est automatiquement nommé et numéroté... il ne reste qu'à saisir les lignes de la facture. Les éléments récapitulatifs sont repris sur la dernière feuille du classeur et calculent automatiquement le CA et divers ratio.