A-t-on vraiment besoin du VBA sur Excel ? Voyez-vous même

A-t-on vraiment besoin du VBA sur Excel ? Voyez-vous même - VB/VBA/VBS - Programmation

Marsh Posté le 09-02-2018 à 00:48:50    

C'est sûr, pour envoyer un email depuis un classeur, une macro sera incontournable, mais pour le reste ?
 
https://reho.st/preview/self/4811655ae53dd1ad1462e74ec790e16ebd2d1c33.png
 
Aucun VBA n'est impliqué dans la création de ce screen :p
 
Donc, oui, j'ai créé un moteur 3d en raycasting - sans doute le premier - entièrement avec des formules excel, et de la mise en forme conditionnelle pour le rendu.
Libre téléchargement : http://public.cbel.free.fr/?file=Doom.xlsx
 
Et pour avoir le détail du comment, j'ai rédigé un article là bas.
 
https://www.gamasutra.com/blogs/CBe [...] _file_.php
 
J'ai ajouté une vidéo depuis : https://www.youtube.com/watch?v=iCeOEQVUWZ0
 
-> et oui, c'est de l'auto-promo avec un titre putaclic :o
Mais bon, je suis quand même preneur des retours :D

Message cité 1 fois
Message édité par Peuwi le 16-02-2018 à 14:27:37
Reply

Marsh Posté le 09-02-2018 à 00:48:50   

Reply

Marsh Posté le 10-02-2018 à 11:43:42    

Peuwi a écrit :

C'est sûr, pour envoyer un email depuis un classeur, une macro sera incontournable, ....


 
Même pas !!!  
 
Exemple avec un hyperlien : https://mon-partage.fr/f/wxJsYg0f/


Message édité par patrice33740 le 10-02-2018 à 11:51:08

---------------
Cordialement, Patrice
Reply

Marsh Posté le 10-02-2018 à 12:48:09    

Effectivement, c'est intéressant, mais ca n'envoit pas exactement l'email, ca le prépare juste, il faut encore cliquer sur "envoyer" manuellement. S'il y a 500 emails à envoyer, ca peut être long.
Mais je retiens la technique :)
 
Sinon, j'ai grosso-modo aucun retour sur le classeur ... Je n'arrive pas à savoir si les gens s'en foutent, trouvent ca banal, ou ne comprennent pas :D
Je vais essayer d'en faire une vidéo, ce sera peut-être plus clair.


Message édité par Peuwi le 10-02-2018 à 12:48:53
Reply

Marsh Posté le 10-02-2018 à 13:33:20    

Salut,

 

Perso je pense que les gens s'en foutent sans vouloir te vexer. Moi je l'ai téléchargé et essayé, je trouve ça surprenant mais ça reste une anecdote malgré le travail conséquent réalisé.
De toute façon ce n'est pas fait pour y jouer, c'est juste pour montrer les capacités de Excel. Même si peu de monde connait vraiment sa puissance, c'est un logiciel que tout le monde reconnait comme incontournable.

 

Perso, les macros pour moi c'est uniquement de la mise en forme automatique avec de l'importation de données malgré que j'utilise quasi quotidiennement ce logiciel. J'ai déjà fait un paquet de chose sur Excel, que ce soit du mapping de données (mise en forme conditionnelle et lissage des données), un solveur pour une analyse fonctionnelle, détermination de courbes maitresses, etc.
Je me rappelle même quand j'étais petit avoir fait un gros calculateur qui simulait un jeu php, j'avais même était confronté à la limite de la taille des formules à ce moment là. :pt1cable:

 

Le problème de ton jeu reste la gestion du temps mais là tu ne peux pas aller plus loin sans macro en effet je pense.

 


EDIT : ça reste comme un jeu programmé sur calculatrice, sauf que là tu as accès à plus de puissance, une meilleure résolution et de la couleur.

Message cité 1 fois
Message édité par MaybeEijOrNot le 10-02-2018 à 13:50:11

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 10-02-2018 à 14:53:18    

MaybeEijOrNot a écrit :

EDIT : ça reste comme un jeu programmé sur calculatrice, sauf que là tu as accès à plus de puissance, une meilleure résolution et de la couleur.


Spa faux :)
 
Enfin, c'est pas tout à fait vrai non plus : un jeu sur calculatrice reste programmé de façon standard, avec une suite d'instructions réparties sur quelques procédures ... Alors que là, les cellules se comportent comme des milliers de petits threads indépendants, avec chacun une série d'instructions. Mais bon, ca ne fait pas grande différence :)


Message édité par Peuwi le 10-02-2018 à 14:53:46
Reply

Marsh Posté le 13-02-2018 à 13:57:08    

Moi je trouve ça très impressionnant, une belle démo technique.

Reply

Marsh Posté le 14-02-2018 à 12:00:09    

Les formules, dès que ça devient un peu complexe, ça devient difficilement maintenable :/ Alors que du code VBA, c'est bien plus simple et lisible.
C'est pour ça qu'à partir d'une certaine compliqué, mais si c'est faisable avec des formules, j'utilise du VBA. Je pense au pauvre bougre qui passera derrière moi des mois ou des années plus tard et qui devra comprendre e que fait le bouzin et comment il le fait (préalable à toute demande d'évolution dudit bouzin).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 16-02-2018 à 14:15:14    

Clairement, pour pousser le bouchon aussi loin que dans cette démo, oui, les formules deviennent méchamment in-maintenables, sans parler du nombre de références de-ci de-là qui n'est pas sans évoquer les heures de gloire du goto et du plat de spaghettis associé :D
 
De même, je pense sincèrement que pour un travail réalisé par un développeur - un vrai développeur formé, éduqué, et maîtrisant le VBA - alors écrire le code en VBA pourrait être aussi rapide dans les cas où il n'y a pas une formule toute prête qui fait le boulot.
Mais ce n'est pas suffisant !
-> il faut aussi que ce travail soit ensuite maintenu, et transféré à quelqu'un qui aurait le même profil.
Dans ce cas, et dans ce cas uniquement, la maintenance peut être plus simple en VBA, principalement par l'application de normes de codages communes à tous les développeurs, qui leurs permettent de se ré-approprier le boulot rapidement, et par les habitudes de rigueurs forgées par l’expérience qui garantissent que lorsque le développeur a fini son boulot, il l'a testé, et bien testé.
 
Sauf que dans la réalité (du monde où je vis), les mecs qui font des macros, et plus encore les mecs à qui ils refilent leur boulot, NE SONT PAS DES DÉVELOPPEURS
Dans cette réalité toujours, les mecs qui font des macros en font parce que faire une macro était un objectif en soi (pratiquement pour se former), et qu'ils en font bien qu'elle n'apporte aucune valeur.
(genre, faire une macro pour calculer les données et en sortir un graphique, le truc qui se fait de base, en standard, avec excel)
Les mecs qui font des macros ne savent bien souvent pas coder dans un autre langage, sans quoi ils comprendraient bien vite qu'il est un peu con d'utiliser excel pour au final ne pas l'utiliser, et ne réalisent même plus à quoi servait excel : faire plein de choses sans avoir à taper du code, justement.
Et ces personnes là, bien souvent, n'ont pas le moindre respect pour leurs collègues, et je ne compte plus le nombre de fois où une fois l'anomalie partie pour d'autres horizons, LA TOTALITE de leur travail peut être jeté, de leurs propres aveux. (quand il ne peut pas être remplacé en 3jours de travail en utilisant de simples formules et quelques graphiques préparés à l'avance)
 
Donc, oui, il n'est pas super adapté d'utiliser le moteur de calcul par cellules pour faire un moteur 3D, mais c'était dans l'intention de prouver qu'il n'est pas nécessaire et même franchement contre-productif à long terme de pondre 400lignes de code pour faire quelques sommes, quelques graphiques et quelques mises en forme.
 
Je complète quand même un peu.
-> il y a en pratique une façon assez propre de couper la poire en deux, en faisant du VBA sans faire du code crade : il s'agit de développer des fonctions au lieu de faire des procédures.
Une fonction à de bonnes chances d'être bien intégrée au classeur, et d'être sur un périmètre suffisamment limité pour que le développeur ne se mette pas à lui faire faire tout et n'importe quoi.
Sauf qu'hélas, je constate que bien souvent, pour 1 fonction rédigée, 99 procédures sont écrites à coté. Le code VBA dégueulasse à de longues années devant lui :D


Message édité par Peuwi le 16-02-2018 à 14:25:51
Reply

Marsh Posté le 19-02-2018 à 23:23:26    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed