Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Microsoft Office Discussion :

Quel est le futur des outils avec VBA?


Sujet :

Microsoft Office

  1. #1
    Candidat au Club
    Quel est le futur des outils avec VBA?
    Bonsoir à vous.
    Je suis indépendant et développeur d'outils en Excel, utilisant VBA. Tout dernièrement j'ai eu des échanges avec un technicien Windows qui me disait que les VBA n'allaient plus vivre longtemps, et qu'il lui semblait urgent que je bascule sur .net

    J'avoue que l'aventure ne me séduit pas, vu que je maintiens les clients que j'ai en douceur, et n'ai pas l'élan d'aller apprendre une nouvelle plateforme, si je peux l'éviter
    En même temps, j'aimerais avoir une idée si ma branche est caduque, et sa potentielle durée de vie...?

    Je me souviens aussi que cette annonce (la mort de VBA) est faite depuis des années (il y a d'ailleurs un post sur ce site avec, en gros, la même question, datant de 2011... c'est pour dire).

    Merci d'avance pour vos retours!
    GeoD

  2. #2
    Membre éprouvé
    Bonsoir

    Sujet intéressant.

    Tôt ou tard, VBA sera abandonné. C'est une certitude, VBA a déjà plus de 25 ans je pense (j'en fait depuis pratiquement le début).

    VBA est accessible pour les clients lourds, Excel.exe, Word.exe, etc. alors que le futur est le web. Ma perception est que VBA sera abandonné pour des scripts type javascript mais je n'en sais trop rien. Il faudrait pouvoir continuer à développer des macros aisément et les incorporer aux fichiers Excel qui seront affichés depuis une page web.

    Déployer une solution VSTO est quelque chose de compliqué à l'opposé d'un simple fichier Excel accessible depuis le web.

    Je serais très intéressé si quelqu'un disposait de l'une ou l'autre source / tuto qui permettrait de, oui, prévoir la migration des outils VBA Excel.

    Bonne soirée.
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  3. #3
    Membre éprouvé
    Bjr
    Bonjour,

    Pour ma part, je suis persuadé que le VBA a encore de beaux jours devant lui.

    Nombreuses sont les entreprises qui utilisent les suites MS Office, dont les versions ne sont pas forcément les plus récentes vu leurs coût.

    Cependant, il serait bien évidement important de déjà penser à l après et d'apprivoiser un voir plusieurs nouveaux langages de programmation.

    Je penserais par exemple au c# et. Net, mais je vai attendre l'avis de pro de secteur avant de me lancer.

    Bat

  4. #4
    Membre averti
    Bonjour,

    Je suis du même avis que mfoxy, il y a aujourd'hui trop d'entreprises et autres qui sont dépendantes d'Excel et de ses macros VBA. Et admettons que tout le monde se mette d'accord demain sur le fait d'arrêter la VBA pour je ne sais quelle raison, il faudrait des années avant de ne plus trouver de trace de VBA.

    Cela dit, il y a de plus en plus de très grosses entreprises qui essayent de se tourner vers d'autres solution qu'Excel, car à l'échelle d'un grand groupe, la Licence Microsoft Office coûte très cher !

    J'en connais quelques unes qui se tournent vers la solution de Google et ses Google Spreadsheets, où la possibilité de faire des macros est toujours présente, mais il faudra apprendre un nouveau langage.

    Pour ma part, j'aurais du mal à m'en passer, après toutes ces années, il y a un lien affectif qui finit par se créé avec Excel

  5. #5
    Membre éclairé
    Bonjour,
    Microsoft à arrêté la maintenance de Visual basic en 2003 ! on peut en conclure qu’il y a déjà bien longtemps que vba a été abandonné. Du reste beaucoup de composant 32 bits non pas été réécrit en 64 bits.

    Reste une certaine compatibilité entre versions. La législation française dit 20 ans mais je ne pense pas que Microsoft se souci de la législation française ! mais une certaine duré de vie me parais de mise ! disons une quinzaine pour la version 2019 ! pour 2020,21, etc… ?

    Il me semble avoir lu quelque part que Microsoft envisageait des fonctionnalités accessible avec une sorte de webservice ???

  6. #6
    Membre éprouvé
    Bonjour à tous

    À titre personnel : j'ai tant et plus d'applications où je code en VBA. J'en ai une toute grosse qui est une application critique et où le nombre de lignes de code doit être proche de 50.000 pour, juste, la partie interface. Et cela pour une seule application...

    Parce qu'elle est justement critique, il faut prévoir le futur : VBA or not ? Est-il incorrect de penser que Microsoft poussera toujours plus la version online de sa suite bureautique et délaissera un peu plus la version offline (installation de MS Office sur les PCs des utilisateurs). Dans ce schéma, les jours de VBA sont compté puisque non supporté par le navigateur web.

    Je comprends bien qu'on parle ici en années et qu'il n'y a aucune urgence (contrairement au message alarmiste donné par le technicien du premier sujet de ce post).

    Bonne après-midi.
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  7. #7
    Membre habitué
    Futur de VBA

  8. #8
    Membre éprouvé
    Bonjour

    Citation Envoyé par zoltar_x Voir le message
    Piloter Excel avec VB.NET
    Merci mais ce n'est pas du tout la piste recherchée. Ici, tu développerais une application Windows (un .exe) qui ne ferait jamais que lancer Excel en arrière plan (ou premier plan) et tu piloterais Excel depuis ton application.

    Une sorte de macro en dehors d'un fichier Excel donc.

    Bonne journée.
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  9. #9
    Membre habitué
    Futur de VBA
    C'est un sujet intéressant.
    Regarde cet article en anglais que j'ai trouvé sur quora.com. Apparemment le langage qui va remplacer le VBA est Javascript ou peut-être JScript qui est la version Microsoft de Javascript.

    Microsoft made its decision several years ago on the language to succeed VBA, and it will be JavaScript. They are currently developing the API that will underlay the new macro language, and expect to make it available on all Office endpoints (Windows & Mac desktop, Office Online, iOS, Android, Windows phone).

    The JavaScript code will live on a server, so it will be easy to update. It will also run asynchronously (unlike VBA)—so you need to program in waits for the values to update on the worksheet or document before proceeding.

    Microsoft chose JavaScript because the language is widely known in the programming community and continues to be taught in universities. JavaScript runtime engines are also universally available in endpoints like iOS and Android. Runtime engines for other languages—not so much.

    The object model for Excel (the application I am most familiar with) is currently usable, but incomplete. Microsoft just published release 1.4, and appears to be coming out with new releases several times a year.

    All JavaScript arrays are zero based and one dimension. If you need a two dimension array, you need to use the closest equivalent, which is an array of one dimensional arrays. JavaScript is very particular about capitalization, but doesn’t care at all about variable type. To an experienced VBA programmer, these are definitely going to be stumbling blocks as you learn the language.

    There is no JavaScript macro recorder at present. So there is no easy path into automation for the office workers who need a little bit of productivity but whose day job has nothing to do with the corporate IT department. Since the overwhelming majority of people writing VBA code have little or no formal programming training, I expect VBA to live on for many, many years to come.

    Don’t expect JavaScript macros to be speed demons. Current benchmarks are a lot slower than VBA. Instead, realize that the real benefit of JavaScript macros is that they will work on endpoints that will never support VBA, such as iOS, Android or Office Online.

    If you want to read up on how JavaScript will be implemented, one of the developers Mikhail Zlatkovsky has an ebook (Building Office Add-ins using Office.js) he is keeping up to date with each new release.

  10. #10
    Membre habitué
    Futur de VBA
    Voilà qui confirme


  11. #11
    Expert éminent sénior
    Citation Envoyé par Geo7850 Voir le message
    Je me souviens aussi que cette annonce (la mort de VBA) est faite depuis des années (il y a d'ailleurs un post sur ce site avec, en gros, la même question, datant de 2011... c'est pour dire).
    Ca fait plus de 40 ans que j'entends parler de la mort du Basic et que je le vois renaitre et s'adapter sous de nouvelles formes : TI-Basic, GWBasic, Quick Basic, Visual Basic, Phoenix Basic, VB.Net et bien d'autres.

    Je rappelais à un amis, il y a quelques temps, qu'en 86, il m'avait prédit que la Pascal allait tuer le Basic.

    Aujourd'hui comme depuis 40 ans, le Basic rester sans doute le langage le plus utilisé par des non-informaticiens.

    Citation Envoyé par Thumb down Voir le message
    Microsoft à arrêté la maintenance de Visual basic en 2003 ! on peut en conclure qu’il y a déjà bien longtemps que vba a été abandonné. Du reste beaucoup de composant 32 bits non pas été réécrit en 64 bits.
    Avant VBA, Excel utilisait des "macro" sous forme de suite de fonctions/commande Excel plus une poignée d'instructions pour les enchaîner.
    Je n'ai pas vérifié mais je pense qu'elles sont encore compatibles (puisque dans le VBA, des méthodes permettent de les utiliser). Je suis par contre certain qu'à la sortie de VBA, ces macros sont restées fonctionnelles plusieurs années (j'en avais quelques unes).

    Si VBA est abandonné pour être remplacé par un autre langage (en entend parler de Java, VBNet, Python, et autres), je doute que ça se fasse brutalement.
    Il est probable qu'il y aura une longue période de recouvrement pendant laquelle il restera utilisable (toujours dans le pack mais sans évolutions), comme ce fut le cas pour les "macro" précédentes.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  12. #12
    Membre éclairé
    bonjour,
    oui , et quand je dis que Microsoft à arrêté la maintenance de Visual basic en 2003 ! c'est exactement ce que je veux dire

    Citation Envoyé par Thumb down Voir le message

    Reste une certaine compatibilité entre versions. La législation française dit 20 ans mais je ne pense pas que Microsoft se souci de la législation française ! mais une certaine duré de vie me parais de mise ! disons une quinzaine pour la version 2019 ! pour 2020,21, etc… ?

  13. #13
    Rédacteur/Modérateur

    Bonjour,

    vous voulez pas comparer ce sujet avec la mort du COBOL, que je rigole encore un peu svp ?

    Les langages naissent et évoluent par la suite. Il ne deviennent morts que lorsque les grosses firmes décident qu'il est trop troué du point de vue sécurite (Flash).

    La problématique de la pérennité du code est plus lié effectivement a des problématiques de technologies sur lesquelles les applications développées tourneront (ou non) un jour. Le virage du 64bits a été pris sans trop de heurts, et ceux qui nous disent que le VBA est mort sont des niaiseux

    Le choix du VBA ou de tout autre langage se fait selon les besoins, les moyens et les outils disponibles pour un individu ou un client. Piloter du Excel en python ca se fait aussi, mais ca n'a de sens que si ton équipe de dev fait essentiellement du python par ailleurs.

    Quand j'ai commencé ma carriere en 2007, on me disait deja que VBA était mort et qu'il fallait passer au C#... Le gros des besoins changent, mais choisir le VBA comme point de départ n'est pas une hérésie, quitte a choisir un langage "plus récent" par la suite pour industrialiser des processus. Tout comme vouloir faire du bigdata avec du VBA n'aurait aucun sens...

    Pour en revenir sur les suites Office qui continuent de sortir, je ne suis pas chez MS et je ne connais pas leur calendrier ni leur volonté à terme, mais avec une sortie de version en dur tous les 3 ans, et si on prend en compte la durée minimum d'intégration des versions en entreprise, tu as bien 20 ans devant toi
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  14. #14
    Membre éprouvé
    Bonjour Jean-Philippe

    La question posée par Geo7850 (premier post de ce sujet) est intéressante pour cela qu'elle nous amène (ou n'est-ce que moi?) à nous poser la question : qu'est-ce qui va remplacer VBA ? Je n'ai aucun doute que VBA a encore 5-10 ans devant loin au grand minimum car comme plusieurs l'ont mentionné, tant d'applications ont été développées sur VBA par les sociétés qu'il n'est pas pensable que Microsoft prenne sa gomme pour effacer VBA.

    La question mérite cependant qu'on s'y attarde : si, sans trop se tromper, on peut supposer que la version online d'Excel va prendre toujours plus d'ampleur et continuera à proposer plus de fonctionnalités, viendra un moment où nous allons devoir réfléchir à migrer nos applications VBA pour qu'elles puissent être exploitables depuis un navigateur qui, aujourd'hui, ne supporte pas le VBA. Et cela simplifierait tellement l'aspect multi-utilisateurs qu'on doit gérer aujourd'hui de façon innovante.

    De mes lectures, il serait possible de développer des macros en javascript mais est-ce la direction à prendre ? Aussi parce que javascript reste limité par rapport aux possibilités de VBA; je pense p.ex. à la connectivité avec une base de données, y exécuter des procédures stockées, récupérer les données pour les exploiter en Excel (affichage et mise à jour avec sauvegarde dans la base de données).

    Une bonne grosse application client-serveur donc qui est possible avec VBA mais je doute qu'elle le soit avec javascript.

    Personnellement, je ne vois que VSTO pour remplacer VBA mais on est à nouveau dans un schéma où il faut avoir le client Excel d'installé sur sa machine (on n'est plus online du coup). On pilote Excel depuis son application tierce...

    VSTO serait-il l'option à prendre pour les prochaines années ? J'ai dix ans d'applications à migrer; je dois avoir 100.000 lignes de code, plusieurs dizaines d'applications et je me pose naturellement la question s'il faut commencer à migrer tout doucement (ce qui prendrait des années) ou ne pas y réfléchir et se dire que VBA continuera à exister encore 20 ans

    Voilà pour ma part

    Bonne journée.
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  15. #15
    Membre éclairé
    Bonsoir,
    Personnellement je pense que la question de la pérennité de VBA est un faux problème ! Le vrai problème est de savoir si nous voulons encore développer en VBA dans 20 ans.

    Faire du VBA toute ça carrière n'est pas desonnorant mais on peut inspire à évoluer vers d'autres langage, faire du management ou que sais-je !

    Laissons la question à nos successeurs ou attendions d'être décideur.

  16. #16
    Membre expert
    Citation Envoyé par zoltar_x Voir le message
    Voilà qui confirme

    Bonjour, ce que tu poste n'a rien à voir, l'API javascript d'Office est utilisé pour faire des web add-in sur Office, c'est très différent de ce qu'on fait en VBA.
    Le VSTO n'est surement pas une solution d'avenir car justement les web add-in sont mis en avant pour le développement d'add-in afin de remplacer les add-in VSTO

    Enfin le VBA est toujours supporté par Microsoft, il à même des outils qui servent justement à détecter les changement entre les différente version d'Office et les version 32 et 64 bits
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  17. #17
    Membre habitué
    Futur des outils avec VBA
    Le problème de VBA c'est que c'est une sous-famille de VB 6.
    Je pense qu'avec VB.net, VB6 est relégué en second plan et VBA avec.
    L'intégration de VB.net dans Excel est une solution envisageable.

  18. #18
    Membre éclairé
    Citation Envoyé par zoltar_x Voir le message
    Le problème de VBA c'est que c'est une sous-famille de VB 6.
    Je pense qu'avec VB.net, VB6 est relégué en second plan et VBA avec.
    L'intégration de VB.net dans Excel est une solution envisageable.
    bonjour,
    je ne suis pas convaincu que Microsoft ait l’intention d’intégrer Vb.net dans Excel vue que la première publication de VB.net est en 2002!

    https://fr.wikipedia.org/wiki/Micros...io_.NET_(2002)

  19. #19
    Membre habitué
    Futur des outils avec VBA
    Bonjour, ce que tu poste n'a rien à voir, l'API javascript d'Office est utilisé pour faire des web add-in sur Office, c'est très différent de ce qu'on fait en VBA.
    Le VSTO n'est surement pas une solution d'avenir car justement les web add-in sont mis en avant pour le développement d'add-in afin de remplacer les add-in VSTO

    Enfin le VBA est toujours supporté par Microsoft, il à même des outils qui servent justement à détecter les changement entre les différente version d'Office et les version 32 et 64 bits
    Pour résumer ce que tu dis, l'API de Javascript pour Excel va permettre notamment de faire tourner des macros directement sur une feuille Excel qui s'affiche dans une page Html. Sauf erreur ?

  20. #20
    Membre expert
    Citation Envoyé par zoltar_x Voir le message
    Pour résumer ce que tu dis, l'API de Javascript pour Excel va permettre notamment de faire tourner des macros directement sur une feuille Excel qui s'affiche dans une page Html. Sauf erreur ?
    l'API Javascript sert à "remplacer" l'interop dispo en c# quand on fait un add-in VSTO. Je ne suis pas expert en macro, mais de ce que j'ai vu dans mes interventions autour d'Office. Jamais ce que font les gens en VBA ne semble possible d'être fait de façon identique avec un add-in web.

    L'api Javascript sert à sélectionner des cellules, des range, des tableaux, lire et écrire et interagir avec certain composant commun à toute les applications Office. Le tous est en effet exécuté dans une page web (ce qui permet de le faire fonctionner dans Excel Online et rend les modifications d'Office moins impactant.
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

###raw>template_hook.ano_emploi###