Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

VBA va-t-il rester populaire pour les 10 à 15 années à venir malgré l'introduction de JavaScript par Microsoft ? Oui,
D'après le fondateur de la plateforme TheSpreadSheetGuru

Le , par Patrick Ruiz

143PARTAGES

23  0 
Visual Basic for Applications (VBA) : va demeurer pertinent pour 10 à 15 bonnes années encore malgré les poussées de JavaScript ; ne disparaîtra jamais de façon complète car jouit d’une large adoption dans le monde de la finance où l’on s’en sert pour l’automatisation des tâches… C’est de façon brossée l’avis du fondateur de la plateforme TheSpreadSheetGuru. Dans sa publication parue à mi-parcours de l’année précédente, Chris Newman signe : « Je suis avant tout un professionnel de la finance. »

Visual Basic for Applications en abrégé VBA est une implémentation de Microsoft Visual Basic intégrée dans toutes les applications de la suite Office, mais le langage dont la première version est parue en 1993 semble beaucoup plus connu pour les possibilités qu’il offre lorsqu’on en fait usage sous Microsoft Excel ou Access. C’est ce, qu’à la suite d’autres intervenants au profil similaire, met en exergue le billet du fondateur de la plateforme TheSpreadSheetGuru : pas besoin de background en informatique pour mettre sur pied des applications susceptibles de rendre satisfaction aux plus grandes boîtes du monde de la finance. « VBA est aisé à étudier, dispose d’énormes ressources en ligne, permet de gagner en aura en entreprise par rapport à de simples utilisateurs d’Excel et surtout permet d’accomplir à peu près TOUT », souligne Newman.

L’exemple de la mise sur pied d’une application de discussion de groupe avec Excel et VBA illustre le dernier axe (la possibilité d’accomplir à peu près tout). Seulement, l’atteinte de certaines cimes serait conditionnée par la capacité à déployer des connaissances plus pointues en informatique comme appeler des API Windows depuis VBA. Dans ce dernier cas, il faudrait alors être un professionnel de la filière informatique qui travaille pour une entreprise qui a besoin d’une application aux fonctionnalités complexes tout en étant basée sur une feuille de calcul Excel. Il vient donc que VBA représente en principe un centre d’intérêt pour les développeurs en quête d’opportunités dans le monde de la finance, ce, même s’il semble que certains ne le considèrent pas comme un langage pour professionnels.


Et les derniers développements ne sont pas pour aider le VBA. En effet, Durant l’édition 2018 de la Build, sa conférence dédiée aux développeurs, Microsoft a fait une série d’annonces. Parmi elles : le lancement de nouvelles fonctionnalités sur Excel qui devraient permettre au tableur de gagner un peu plus en puissance. En substance, les développeurs et les spécialistes des données peuvent depuis lors exécuter de façon locale des fonctions personnalisées en JavaScript ou avec les services Microsoft Azure Machine Learning pour créer leurs propres ajouts au catalogue de formules d'Excel.


Dans sa récente publication, le fondateur de la plateforme TheSpreadSheetGuru reconnaît qu’il y a bel et bien montée en puissance du langage JavaScript en tant que moyen d’automatisation de tâches sous Excel et, sans détour, signe : « JavaScript est le remplaçant de VBA. »

« Alors pourquoi Microsoft a-t-il choisi JavaScript plutôt que VBA ou tout autre langage ? Pourquoi n'ont-ils pas simplement essayé d'améliorer le VBA ? Tout d'abord, JavaScript peut fonctionner sur pratiquement n'importe quel appareil qui exécute une application Office. Actuellement, il n'y a aucun moyen de faire fonctionner VBA sur Excel mobile ou Excel Online. Et si vous avez déjà essayé de créer un code VBA compatible avec PC et Mac, vous savez à quel point c'est difficile. Avec JavaScript, vous pouvez théoriquement écrire un seul script qui fonctionnerait sur n'importe quel appareil, ce qui est un objectif pour toutes les applications Office. Une autre raison est que JavaScript est extrêmement rapide pour extraire des données de sources extérieures. De plus en plus d'entreprises recherchant une intégration transparente à partir de plusieurs sources de données, l'intégration d'Excel avec JavaScript est un atout certain » , souligne-t-il.

Après, Newman reste d’avis que voir JavaScript s’imposer dans la filière n’est pas pour demain : il faudra vaincre la résistance aux changements des utilisateurs du VBA (développeurs ou non) et attendre que la génération d’apprenants qui n’a pas été en contact avec VBA arrive aux affaires.

Source : TheSpreadSheetGuru

Et vous ?

Vaut-il encore la peine de mettre VBA dans son lot de langages à étudier de nos jours ? Ou pourquoi VBA reste-t-il un bon parti de nos jours ?
Avez-vous déjà réalisé de grandes applications ou effectué des tâches complexes avec VBA ? Partagez votre expérience
Comment comparez-vous l’automatisation de tâches sous Excel avec VBA et JavaScript ?
VBA a-t-il quelque chose à craindre de JavaScript dans cette filière ?

Voir aussi :

Microsoft lance une API Excel pour Office 365 qui permet aux développeurs d'intégrer les fonctionnalités d'Excel dans leurs applications
Apprendre la programmation en VBA pour Excel par la pratique - Cinquième partie : protéger vos classeurs sensibles, un tutoriel de Laurent OTT
Microsoft annonce la fin du support de Word, Excel et PowerPoint Viewer et recommande les solutions accessibles via Windows 10 et Office 365

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de rawsrc
Expert éminent sénior https://www.developpez.com
Le 17/02/2020 à 13:19
c'est bien que VBA soit maintenu dans la suite Office, par contre ça ne serait pas un luxe inouï que d'avoir la possibilité de disposer d'un autre langage plus professionnel au sein du pack office. Alors ils optent pour ce qu'il veulent : js ou python ou ce que vous voulez mais un truc avec une syntaxe plus concise et des fonctionnalités de modélisation un poil plus poussées.

@Edrixal
Pour ton client, c'est simple, s'il veut absolument rester sur VBA : tu vires le moteur de base de données JET, tu déportes toutes les données dans un vrai SGBDR, puis tu reprends tout le code sous forme de modules de classe et prog événementielle à la sauce VBA. Tu verras, ça fonctionne du tonnerre par contre le revers de la médaille c'est que les utilisateurs qui avaient l'habitude de tripatouiller un peu le VBA vont vite déchanter.
Là, le niveau de codage va larguer quasiment tout le monde. Au moins plus personne n'y mettra les doigts. Personnellement, j'estime que c'est un gros plus
6  0 
Avatar de Caramel13
Membre régulier https://www.developpez.com
Le 23/02/2020 à 12:19
D'abord pour cet argument majeur ''Enregistrer une macro''.
Ensuite, parce que j'ai dejà eu beaucoup de mal (intellectuel) à me mettre a Python (sur Raspberry), que de devoir me mettre à Javascript, j'en ai deja des nausées !!!
Producteur photovoltaique, je me suis développé une appli complète qui va chercher les données de production sur mes onduleurs (avec ou sans Datalogger, en Ftp), qui les enregistre dans des feuilles journalières ET dans une base Access, qui les fusionne, qui les synthétise par jour, par mois, par onduleur, par ... tout ce qu'on peut imaginer, et qui me les ''graphise'', et, quand je me fatigue ''un peu'', me les compare à celles publiées par mes voisins.
Cela m'a permis de détecter en 2 jours un défaut de production du à un obstacle mal posé sur un panneau,
de comprendre qu'il est préférable de bien les aérer que de couper des arbres qui font un peu d'ombre,
de voir que, d'une année à l'autre, les panneaux ne perdent pas autant en efficacité que les fabricants le disent,et surtout qu'il faut du soleil pour faire de l’électricité,
bref d'avoir un truc visuel qui m'évite les prises de tête, surtout que ce truc soit EVOLUTIF.
Donc, j'aime VBA .... même si sous Access, cela manque un peu d'aide à l'enregistrement pour création.
Par contre, pour Word, c'est vraiment galère tellement le modèle objet est complexe (et fourni).
4  0 
Avatar de ypicot
Membre confirmé https://www.developpez.com
Le 18/02/2020 à 18:14
Un des énormes points forts de VBA (du moins Excel), c'est de pouvoir enregistrer une macro.
Comment ouvrir un classeur ? Comment mettre une cellule en jaune ? Il suffit de s'enregistrer et de regarder le code généré.
Cela est à la fois un super avantage et un remarquable inconvénient :
- au bout de 3 jours de stage, une personne n'ayant *aucune* connaissance en programmation mais pas trop neuneu est capable de sortir un bout de code qu'il pourra utiliser dans son boulot, et pas trop mal structuré (boucle, procédure paramétrée, ...). C'est plus difficile d'obtenir un tel résultat en 3 jours avec avec du Python, même si le langage est beaucoup plus sympa, car il faut retenir plus de choses. (je parle bien de personnes n'ayant jamais programmé, et ne sachant pas ce qu'est une variable).
- de l'autre coté, je me suis retrouvé une fois avec un code qui faisait un peu moins de 10k lignes réparties en ... 4 procédures. Ouaip, entre 2000 et 3000 ligne par sub, ça pique un peu. En gros, c'était du style "j'ai compris comment enregistrer une macro, et je fais tout avec ça". D'une manière générale, l'analyse, les tests et autre bonnes pratiques sont largement ignorées.

Je vois le VBA comme un outil facilement accessible, mais ayant ses limites, même si on trouve beaucoup plus de bricolages infâmes en Excel qu'en Access (Word et consort sont quasi inexistants). Il y a mieux, il y a plus performant, il y a mieux conçu, il y a mieux adapté à des tas de contextes, mais pour dépatouiller une petite main de la DAF, cela remplace avantageusement une demande à une DSI surchargée. Voire (et j'ai déjà fait qques migrations dans ce sens, dont une en 3 étapes : Excel => Access => PHP / Laravel), ça sert de point de départ à une appli plus ambitieuse et construite avec un "vrai" langage.

Donc je suis d'accord sur ce point : le VBA n'est pas mort, ou alors il est mort au même titre que le Cobol (car chacun sait qu'il n'y a plus aucun programme Cobol qui tourne, la base de code était de toutes manières assez faible)
3  0 
Avatar de Edrixal
Membre éprouvé https://www.developpez.com
Le 17/02/2020 à 11:29
VBA c'est pratique. Ton programme à sa propre base de donnée, donc partout ou tu va avec tu à t'es données, pas besoin d'installer une base supplémentaire ect...
Le requêteur en interne est top, créer des interfaces est super simple, ect...

Bref, créer un programme ou une petite appli de gestion ça prend quoi ? 4h et t'a quelques chose de fonctionnel.

Mais... Chaque maj de Microsoft apporte sont lot de problème compliquant la maintenance ou obligeant à revenir en arrière sur les maj en attendant les correctifs...
Plus l'application est grosse, moins bien elle fonctionnera. Pour une dizaine d'utilisateur en simultané c'est encore OK, mais pour 30/40... Beaucoup moins...
Si l'application doit faire de gros traitement on vois vite les limites...

Et ses points négatif ma collègue les vois tous les jours vue les applis VBA qu'on à récupérées... On cherche d'ailleurs à convaincre le clients de payer un redéveloppent de l'appli sur un autre langage, car ils souhaite beaucoup d'évolution et une grosse monté en charger sur ses appli, alors qu'elles sont déjà aux max de leur limite...

Bref, ça continuera d'exister pour les petites structure et c'est même plutôt utile pour elle, parce que les connaissances nécessaire pour la création et la maintenance de projet VBA ne sont pas très élevée et qu'il y à énormément de documentation. Mais pour les gros projet ou des projets durable dans le temps, mieux vaut utiliser d'autre techno plus solide.
3  1 
Avatar de tanaka59
Membre émérite https://www.developpez.com
Le 17/02/2020 à 14:19
Bonjour,

Vaut-il encore la peine de mettre VBA dans son lot de langages à étudier de nos jours ?


Toujours ... Une application qui classe des codes rattachés à un code master ... Quand vous avez un service de gestion qui n'a pas oracle ou Access et que vous devez vous taper des grooup by concat ... On est bien content ! Une fonctione "retourner chaine", une fonction de tri automatique ... Création automatique de fichier avec un auto run ...

Ou pourquoi VBA reste-t-il un bon parti de nos jours ?
C'est utilisé par beaucoup de services non informatique mais qui ont des outils plutôt lourds niveau IT ... (gestion, marketing, DAF, finance, audit interne, paie, ADV, CPV ... ) . Souvent des services extrêmement gourmand en reporting et autre fichier de données brutes plutôt lourd.

Avez-vous déjà réalisé de grandes applications ou effectué des tâches complexes avec VBA ? Partagez votre expérience
Oui comme cité plus haut. Avoir un programme VBA qui peut classer automatiquement des codes rattachés à d'autre codes master ... Quand on a pas SQL ... VBA est pratique !

Comment comparez-vous l’automatisation de tâches sous Excel avec VBA et JavaScript ?
VBA reste clair et fonctionne de manière matricielle. Javascript c'est bon avec du Java ou dan du PHP en dynamique.

VBA a-t-il quelque chose à craindre de JavaScript dans cette filière ?
A moins de remplacer les gestionnaires, marketeurs , DAF, auditeurs, acheteurs-vendeurs interne, comptabilité par des ordes d'informaticiens ? J'ai des gros doutes ... Comment faire fonctionner une boite sans son services marketing ?

Un exemple concret , j'ai bossé en sécu et il y a un service contrôle de gestion dit "interne" . Celui ci travaille pour les RH, la paie, le service anti fraude, les services IJ et indemnité ... Le développeur-programmeur PHP qui fait aussi du SQL n'a pas du tout les mêmes réflexes que le contrôleur de gestion qui lui fait aussi du SQL ...

L'un développe tout en PHP , l'autre développe de manière ponctuelle sans être un "pisseur de code" donc il utilise du VBA ...

C'est comme quand j'entends que 100 % des feuilles de calculs de passerons sur des produits Google ... ou alors que 100 % Excel deviendront du online ... C'est impossible pour la simple que raison que VBA est un traitement local sur une machine ... A moins de "VMiser" tous les users ? J'en doute fort. VBA a encore de beau jour devant lui .
2  0 
Avatar de Jean-Philippe André
Rédacteur/Modérateur https://www.developpez.com
Le 16/04/2020 à 16:44
Citation Envoyé par Doatyn Voir le message

Quand je pense que j’ai commencé en Fortran avec des caisses de cartes perforées …
PS : je ne suis pas programmeur, juste un peu fada
Ou alors tu te fais vieux
1  0 
Avatar de Astraya
Membre expérimenté https://www.developpez.com
Le 18/02/2020 à 8:18
Je ne connais pas le développement sur office mais pourquoi ne pas simplement pouvoir faire du C#?
1  1 
Avatar de rawsrc
Expert éminent sénior https://www.developpez.com
Le 18/02/2020 à 15:03
bah parce que C# n'est pas si répandu que ça.
Python ou Js ont une base d'utilisateurs/bidouilleurs bien plus vaste. Et puis Python s'insinue tellement partout que cela faciliterait son adoption au sein du pack Office.
Il ne faut pas oublier que VBA ne cible pas particulièrement les pro du dev. Donc stratégiquement parlant, je ne pense pas que MS souhaite changer son fusil d'épaule.
Office doit rester "accessible" et ratisser large.

Personnellement, cela ne me dérange pas le moins du monde que tout le monde puisse y trouver son compte, par contre si MS pouvait penser un peu plus aux professionnels et fournir un système de code beaucoup plus évolué ça ne serait pas un mal.
0  0 
Avatar de Daranc
Membre émérite https://www.developpez.com
Le 04/03/2020 à 22:53
je ne jouerais pas à VGE en rajoutant non car
mais le VBA à pour un non programmeur (ma pomme) de métier un petit coté sympa , et tant que j'étais en activité , une bonne souplesse d'utilisation, certes les macros était à réadapté à chaque nouvelles version (mois je bossais sous 2003, et je devais adapté des outils pour 2016 uuuuhh!) depuis hors boutique je me suis tournais vers divers solution libre là je test OnlyOffice , et le langage macros c'est java script j'ai jamais ne serait ce qu'ouvert un fichier Javascript , mais il est dit sur le programme que la souplesse le rend passe partout,donc à voir, on se rappelle la version Excel 2008 sans VBA ( viré des PC de la société pour reprendre des versions antérieur , avec VBA . Excel à une très forte implantation, et VBA est très largement utilisé, . de plus de vieux langage sont touours utilisé dans les industries, pas au niveau de l'imnformatique des BE ou e la GPAO mais en atelier, des programme tourne sur des bécanes de l'autre siècle avec des programme plus vieux que ces machines
0  0 
Avatar de Doatyn
Membre du Club https://www.developpez.com
Le 16/04/2020 à 16:37
VBA a pour moi deux énormes atouts (j’ai déjà fait tout ça) :
* On n’a pas à créer et gérer les objets (fenêtres, …) contrairement à un langage compilé
* Toutes les applis office sont accessibles : manipuler des fichiers Word depuis Excel, utiliser Excel en stockage de données depuis Outlook, récupérer / modifier des données planning MsProject avec Access …
Sans oublier la puissance des requêtes SQL mises dans le code.
Récemment, j’ai utilisé un SDK de GED pour manipuler les fichiers de la GED avec Excel et Access (en modules de classe). Il faut quand même quelques précautions car le SDK en question est en C (UNICODE, pointeurs), mais ça marche bien.
Enregistrer une macro c’est sympa, mais on obtient un code pourri.
Quand je pense que j’ai commencé en Fortran avec des caisses de cartes perforées …
PS : je ne suis pas programmeur, juste un peu fada
0  0