Dois-je continuer sur VBA?

Fermé
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020 - 6 oct. 2019 à 21:26
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020 - 9 oct. 2019 à 21:55
Bonjour cher forum,

Je suis enseignant en école primaire. Depuis quelques temps je développe pour mes élèves un projet visant à faire du jeu de rôle en classe. Pour que ce soit applicable avec une classe complète, j'ai besoin d'un programme qui fasse office de Maitre du jeu.

Après avoir traficoté quelques temps sur Excel, je suis passé à VBA et ai découvert que ça ouvrait BEAUCOUP de possibilités! Je travaille dessus depuis quelques mois et me débrouille maintenant pour faire à peu près ce que je veux avec les macro et Userform.

Mais je me pose la question maintenant: Dois-je continuer sur VBA?

Je pense parvenir à mes fins avec VBA, même si cela va me prendre un temps fou (mais je suis patient). Seulement, je dois penser à la mise en place en classe. Je suis remplaçant et remarque que les écoles sont de mieux en mieux équipées en ordinateur portable ou tablettes... Si je reste sur VBA il me semble que j'aurai besoin d'ordinateurs disposant d'Excel, et qu'il faudra encore que je mette mon fichier sur chacun d'eux...
Plus j'aurai d'ordinateurs ou tablettes avec accès au programme, plus mon projet sera viable. Passer par internet me semble donc le plus simple.

Bref, la situation VBA ne me semble pas idéale. Si je pouvais coder ça sur un site, l'accès au programme serait beaucoup plus simple (et même disponible à la maison pour les élèves).

Voici les 2 options que je vois:

1 Continuer à me faire la main sur VBA. Quitte à recommencer dans 2 ans sur un autre support.

2 Passer dès maintenant à autre chose me permettant de coder une page web. Mais je repars à 0 (ce qui ne me fais pas peur), et je ne sais absolument pas comment m'y prendre, par quoi commencer...

Pour l'option 2 : est-ce que ce que j'ai appris sur VBA est bon pour la poubelle? Est-ce que je peux utiliser un langage proche de VBA?

Voila,
Si une âme charitable peut me montrer la voie, je lui serais infiniment reconnaissant


Cordialement,
Niko

8 réponses

Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 931
6 oct. 2019 à 22:35
Bonsoir

avant de parler codage, sache qu'il existe déjà un jeu de rôle en ligne "pensé" pour une classe.
Je ne suis pas vendeur, mais les profs de technologie du collège des mes enfants l'utilisent.
Perso je suis mitigé sur le fait qu'ils leur donnent des défis à réaliser à heures précises, le soir, le week-end. Si ton enfant est déjà accro aux écrans ça peut lui donner une excuse (c'est pas la cas des miens, mais je reste vigilant)

Cela correspondra peut-être à ce que tu cherches à faire.
https://www.classcraft.com/fr/

Pour coder un site web, le plus courant est d'utiliser PHP, Javascript, ajax....

Tu peux aussi faire ton site en ASP.Net avec du VB.Net, attention VB.Net c'est loin de VBA, malgré le nom.
Voir https://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net


Pour commencer, tu peux aller voir là
https://general.developpez.com/cours/#langageweb

2
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
6 oct. 2019 à 22:42
bonjour, vu ce que je comprends de ton contexte, je pense que tu as intérêt à passer le plus vite possible du VBA à un langage orienté "page web".
la transition sera rude, surtout parce que les interactions avec les utilisateurs sont tout à fait différentes.
en terme d’apprentissage, je dirais que ce tu as appris en terme de logique et de structure te sera utile.
les trucs et ficelles que tu as appris dans VBA ne te serviront plus, mais t'aideront peut-être à mieux comprendre les trucs et ficelles de ton nouvel environnement.
Je pense que faire la transition plus tard n'est pas un bon choix. sauf si tu ne peux pas accepter de devenir improductif un certain temps, parce que tu seras en phase d'apprentissage.
personnellement, je pense qu'un environnement "page web" est beaucoup plus complexe qu'un environnement VBA. j'estimerais donc que le temps requis pour que tu sois à niveau est identique au temps qu'il t'a fallu pour arriver à un niveau satisfaisant en VBA.
comment t'y prendre, par où commencer: moi, sans connaitre ton contexte, je me définirais des exercices, ou des petits défis, dans la direction de ce que je veux obtenir.
d'autre part, comme technologie, j'utiliserais PHP, soit sur un site hébergé, soit un un site dont "tu" serais propriétaire.
par ailleurs, bravo pour ta lucidité et ton courage de remettre ainsi en question ce que tu as mis en route, de sortir de ta zone de confort.
1
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 931
7 oct. 2019 à 23:17
Coté langage web, yg_be est bien plus renseigné que moi.
Par contre je peux te parler de scratch.
C'est un logiciel qui permet de créer visuellement des algorithmes, ça a été développé pour des enfants.
En soit on ne code pas, on pose une "boite" et on met des "boites" dans la première, on écrit une condition par ci et un truc par là.
Par exemple, un "Si" se présente comme un grand C, en haut il y a un espace pour la condition, et toutes les boites à exécuter sont posée dans le creux du C.
C'est du scripting plus que de la programmation.

L'interface graphique est orientée objet (comme VBA), les personnages sont des lutins que l'on peut animer, et qui peuvent générer des événements

Les quelques boites disponibles sont très basiques, pourtant certains arrivent à faire des petits jeux sympa avec, je leur tire mon chapeau.
Pour m'être cassé les dents dessus avec mon ainé, pour réaliser des algorithmes de quelques lignes en VBA, il faut sérieusement se décarcasser
1
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
8 oct. 2019 à 22:44
@Noko71, à toi de décider si je suis plus renseigné que Whismeril, ou simplement plus audacieux dans l'expression de mon opinion.
0
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020
7 oct. 2019 à 22:06
Bonjour,

Déjà merci pour vos réponses

@Whismeril : Oui j'ai découvert classcraft il y a quelques temps. Ce n'est pas vraiment cette direction que je souhaite prendre comme je le décris un peu plus bas. C'est surtout un prétexte pour faire de la lecture, écriture, calculs... Mais ton retour sur classcraft en tant que parent est très intéressant.
Et merci pour les liens.

@yg_be: Merci pour ces infos et les encouragements.
soit sur un site hébergé, soit un un site dont "tu" serais propriétaire.
C'est peut être une question idiote, mais quelle est la différence?


Bon vous m'avez convaincu qu'il faut passer à autre chose, d'après vos conseils et mes recherches, voici donc les options que je vois:
- html,css php sql et un peu de java. J'y connais rien mais ça me semble beaucoup! Je commence par html?
- Python : assez facile pour débuter, multitâche et bien pour un site web.
- ou Php. Une référence?
- VB.net pour garder un lien avec VBA?
- Scratch: très accessible en espérant ne pas être limité si mon projet prend de l'ampleur.

Pour vous donner une idée de ce dont j'ai besoin, voici quelques détails sur ce que je souhaite faire:
je suis parti sur un jeu de rôle type à l'ancienne sur table et non jeu vidéo RPG. Je préfère axer la découverte du monde par la lecture et l'imagination plutôt que le visuel, d'autant plus que celui-ci me prendrai un temps fou pour un résultat sans doute très moche .
Les élèves auront donc une simple carte pour indiquer où ils souhaitent aller ou à qui ils souhaitent parler. Le but n'est pas de pouvoir se promener dans un univers avec son personnage, mais d'arriver sur l'ordinateur en sachant exactement quoi faire, puis noter le résultat/les indices... dans le cahier de suivi d'aventure et de retourner à sa place.
C'est pas très sexy vu comme ça mais avec les nombreuses contraintes d'une utilisation qui se voudrait régulière en classe et pédagogiquement justifiée, j'ai pas trouvé mieux.

Messieurs que pensez-vous de Python? Il m'a été recommandé. Pourquoi choisir plutôt Php?

Merci beaucoup pour votre aide.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié le 7 oct. 2019 à 22:28
un site hébergé, c'est un site que tu loues chez un fournisseur.
un site "à toi", c'est un site qui tournes sur tes ordinateurs.
tu n'as pas vraiment décrit ton environnement.
de toutes façons, pour le moment, cela ne fait pas de différence, tu utiliserais la même technologie dans les deux cas.

je n'ai pas compris "sur table" et "RPG". veux-tu simplement dire que l'interface web avec l’utilisateur ne sera pas très graphique ni très interactif?

à propos du langage:
- bien que VB.net puisse sembler proche de VBA, c'est assez différent. par ailleurs, l'interaction web est totalement différente de l'interaction via Excel, donc il restera assez peu en commun. et VB.net est assez peu offert par les hébergeurs de site web.
- PHP est moins ambitieux que Python, mais est le standard pour les sites web. PHP est peut-être un solution de facilité, et je pense que ce sera plus abordable, et que, dans ton contexte, tu trouveras plus d'aide qu'avec Python.
- Python est mieux en théorie, et n'est pas spécifiquement destiné à gérer un site web. Il sera probablement moins souvent offert par les hébergeurs de sites web.
- comme j'estime tes ambitions, comme informaticien, à "modérées", je suggère plutôt PHP. si tu voulais en faire ton métier, alors Python, malgré tout, serait préférable.

je ne connais pas scratch.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020
7 oct. 2019 à 23:08
Merci pour ces détails yg_be.

je n'ai pas compris "sur table" et "RPG". veux-tu simplement dire que l'interface web avec l’utilisateur ne sera pas très graphique ni très interactif?


Effectivement, l'interface ne sera pas graphique mais uniquement là pour recueillir les informations (action que doit faire le personnage), les traiter pour donner un résultat (réussite, échec...), puis si validation, passer à l'étape suivante (texte narratif, énigme, nouvelle problématique...).
Tous ces calculs serait impossibles à réaliser moi seul, avec 25 élèves, sans un programme. Les possibilités offertes au personnage étant très nombreuses, la base de donnée est assez conséquente à gérer.

J'espère être assez clair désolé.

Donc je note que Php est plus simple que Python, j'avais compris le contraire.

Merci!
0
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020
Modifié le 8 oct. 2019 à 21:39
Bonjour,

Merci pour les infos supplémentaires.

Bon, il en ressort donc principalement le choix Php ou Python.

D'une façon générale, j'espère que mon petit projet, très grand à mon échelle, m'occupera pendant des années et se perfectionnera/développera à chaque fois un petit peu. Du coup je me demande si malgré la difficulté, je n'ai pas intérêt à me mettre quand même à Python pour garder un maximum de flexibilité si je change une fois de plus de cap... Je serai au moins tranquille de ce côté.

Du coup les questions qui me viennent:
- Si j'utilise python, je dois décider directement du support que je vais utiliser (je veux dire page web ou programme...)?
- Que veut dire être offert par les hébergeurs de sites web?

Merci encore pour votre aide.
Niko
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
8 oct. 2019 à 22:40
excellentes questions. et voici mes réponses (c'est mon opinion, pas parole d'évangile):

- oui, si tu utilises python "comme un programme" ou "via une page web", ce sera tout à fait différent. à cause de deux aspects:
1) la gestion de la communication avec l'utilisateur sera entièrement différente, et cette communication sera sans doute la colonne vertébrale de ton programme
2) la gestion des données partagée ou centralisées (tu n'as pas explicité cela, mais j'ai supposé qu'il y en aurait) est tout à fait différente, python travaillant "comme une page web" étant au centre, et gérant toutes ces données, tandis que python "comme un programme" fonctionne sur le poste de l'utilisateur, et doit accéder à des données centralisées.

(en passant, comment fais-tu en VBA pour gérer ces donnée partagées?)
( à tort ou à raison, j'avais éliminé l'option python "comme un programme", car cela crée des dépendances par rapport aux postes des utilisateurs, et impose de gérer la distribution du programme sur ces postes. ce serait sans doute moins contraignant que Excel, mais moins flexible qu'une approche "page web", où l'utilisateur n'a besoin que d'un navigateur)

- tu vas probablement prendre un abonnement chez un hébergeur pour héberger ton site. cet hébergement peut être plus ou moins sophistiqué, offrir des options telles que la possibilité d'y faire tourner du PHP ou du Python, ou pas.
par exemple, je regarde l'offre de l'hébergeur que j'utilise personnellement. il propose 4 niveaux de service, du moins cher (plus simple) au plus cher (plus complet). PHP est présent dans les 4, Python dans une seul (pas le plus cher). cela indique aussi à quel point chacune de ces technologies est répandue et utilisée.

je t'invite à chercher d'autres avis, surtout si tu veux aller vers Python plutôt que vers PHP, le choix paresseux et de bon sens.
je ne connais pas assez Python dans un environnement "page web" pour pouvoir écrire "va vers Python si tu le sens bien". je ne voudrai pas que tu laisses hypnotiser par le python comme les Bandar Log le furent par Kaa.
0
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020
Modifié le 9 oct. 2019 à 09:33
Bonjour,

Ok, donc je ne profite pas vraiment de la flexibilité de Python si je dois faire un choix précis dès maintenant. Ceci dit, il semble que l'option page web soit unanimement la meilleure, donc je ne risque pas trop de me tromper.

en passant, comment fais-tu en VBA pour gérer ces donnée partagées?

Par VBA, j'ai fait toutes les interactions avec l'utilisateur par Userform.
- Je recueille les choix de l'élève : objectif poursuivi, lieu ou sujet concerné, action souhaitée.
- Le programme va chercher dans la base de données toutes les infos nécessaires pour définir le résultat de l'action : formule, caractéristiques et compétences liées à l'action, bonus éventuel, objet utilisé, difficulté de la tâche, niveau dans la matière concernée (ça se passe dans un univers type Harry Potter)...
- restitution du résultat à l'élève tjrs par userform: réussite?, déroulement de la scène, énigme?, bonus/malus éventuellement engendrés (à mettre à jour sur sa fiche papier de suivi d'aventure ), définition de l'objectif suivant.
- Le programme archive ensuite les décisions, résultats et met à jour les caractéristiques ou autres changement possible pour les prendre en compte lors de la prochaine action. Ceci n'est pas à disposition de l'élève, il en est seulement prévenu et met à jour lui-même sa feuille de suivi.
- D'autres éléments sont gérés automatiquement en parallèle comme l'emploi du temps (définition des temps libres, temps de cours...), gestion des quêtes annexes (pour ceux qui progressent trop vite dans la principale)...

Voilà j'espère que ca peut vous aider à voir dans quelle direction je souhaite aller.
Le programme n'est là que pour recueillir des infos et les traiter, il n'y a rien de graphique. La progression dans l'histoire se fait par texte, à chaque étape franchie (environ tous les 2 jours), un texte narratif est donné aux élèves (papier) pour découvrir la suite.
L'objectif premier reste scolaire!

Merci encore pour le temps que vous m'accordez.
Du coup je suppose que je m'oriente à nouveau vers Php. Dommage, je trouve que Python fait vachement plus viril comme nom!
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
9 oct. 2019 à 15:02
il y a donc une base de données centralisée, indépendante du fichier Excel utilisé par chacun?
0
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020
9 oct. 2019 à 18:06
Non tout est sur un seul fichier excel, il y a les feuilles de données, et deux boutons qui executent les userforms, un pour inscrire un aventurier et un autre pour effectuer une action. Si je ne suis pas clair, je peux ce soir te mettre le fichier en lien, là pas le bon ordi.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020
9 oct. 2019 à 18:30
c'est clair, donc chaque utilisateur est "isolé" des autres. ou ils travaillent les uns après les autres avec le même fichier.
avec un site, tu auras d'autres possibilités de collaboration.
0
Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020
9 oct. 2019 à 20:26
Ils peuvent travailler à plusieurs sur un même fichier, mais chaque aventurier aura son histoire indépendante dans un premier temps. Par la suite je ferai peut être des groupes... j'avais donc l'intention, si j'ai 5 ordi dans la classe, de faire 1 fichier par ordi avec chacun 5 élèves environ qui y auront accès.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Niko71 Messages postés 15 Date d'inscription dimanche 6 octobre 2019 Statut Membre Dernière intervention 10 juillet 2020
9 oct. 2019 à 21:13
si ce mode de fonctionnement te convient (pas d'interaction entre ordi), Python en mode programme peut rentrer dans la course.
ce serait fonctionnellement similaire à ce que tu fais en VBA avec Excel, mais sans dépendre de Microsoft.
0