Projet numéro 2134 : "MACROS ET VBA MISE EN FORME WORD"


Initiateur du projet :
Description projet :
Bonjour, 

Je souhaiterais écrire des mathématiques sur mon ordinateur portable, ce qui nécessite de pouvoir facilement et rapidement écrire des formules mathématiques diverses (opérateurs, sommes, intégrales, divisions etc.) avec des mises en forme spécifiques et éventuellement des zones à compléter (par exemple les bornes de l’intégrale ou l’expression à sommer dans le cas d’une somme). Tous ces éléments se trouvent dans le module « Equations mathématiques » (Image 1) mais il faut les sélectionner un par un dans l’onglet « Equations » pour les utiliser, ce qui est trop long pour une prise de notes. J’ai des moyens assez limités merci d’en tenir compte. Je souhaiterais que Word ou une macro remplace automatiquement des mots-clés précis par les objets mathématiques auxquels je les aurais associés : par exemple, le mot sum sera remplacé par le signe de la somme telle quelle apparaît dans l’onglet « Equations » (donc avec le signe de la somme et une zone pour écrire l’expression à sommer) ; le mot int sera remplacé par une intégrale (le signe et les zones à compléter évidemment) etc. Le caractère « $ » sera parfois mis devant tous les mots-clés pour différencier clairement les mots destinés à être remplacés par un objet mathématique des autres mots, comme par exemple pour différencier e de $e (la fonction exponentielle). Je voudrais aussi que les mots-clés soient remplacés uniquement s’ils sont séparés des autres mots : imaginons par exemple que je fasse une faute et que j’écrive « ma$intenant » au lieu de « maintenant », je ne veux pas que Word reconnaisse le mot-clé « $int » dans le mot « ma$intenant » et le remplace directement au milieu du mot, je souhaite que le mot-clé soit totalement séparé des autres par des espaces pour qu’il soit remplacé. Cela marche parfaitement avec les corrections automatiques, qui remplacent bien le nom de l'insertion automatique par son contenu mis en forme. Il suffit juste d'un espace pour les insérer mais malheureusement, les corrections automatiques ne fonctionnent que sur des écris considérés comme textes, donc ne marchent pas dans les zones d'équations mathématiques. Par exemple, si j'écris $sum pour faire apparaître une somme, elle apparaîtra, mais si je veux écrire quelque chose dans cette somme ou marquer les bornes, je ne peux plus insérer d’autres expressions mathématiques via corrections automatiques dans les zones dédiées de la somme car la somme est dans une zone d'équation mathématique, qui n'est pas considéré comme du texte mais des équations, ce qui empêche d’utiliser les corrections automatiques. Word arrive parfaitement à reconnaître le nom d'une correction automatique et à la changer directement avec juste un espace et à le faire dans tous les cas, sauf dans les zones d'équations. Mon problème consiste en quelque sorte à trouver un moyen d’étendre le concept de correction automatique dans les zones d’équations. J’ai d’abord essayé d’utiliser les insertions automatiques (QuickParts) pour régler mon problème mais bien qu’elles marchent partout, même dans les zones d’équation, il faut toujours utiliser la touche F3 pour les insérer après avoir marché leur nom, ce qui est embêtant et me faire perdre un temps fou car elle est assez petite sur mon clavier et éloignée des zones où j’écris habituellement, à la différence des corrections automatiques, qui utilisent naturellement la touche ESPACE. Il existe cependant un mode de correction automatique appelé « Automaths », qui fonctionne comme les corrections automatiques, mais dans les zones d’équation, mais qui ne règle absolument pas mon problème étant donné que les expressions qui s’y trouvent sont inutilisables mathématiquement : par exemple, la somme n’est constituée que du signe somme et il n’y a pas de zones pour écrire les bornes, tout comme l’intégrale où il n’y a pas de zones pour écrire les bornes ou la fonction à intégrer. Il n’y a que le signe et pas les zones à compléter. De plus, il est possible de rajouter de nouvelles corrections automatiques « Automaths », mais à la différence des autres corrections automatiques, il n’est pas possible de conserver la mise en forme pour Automaths : imaginons que l’on essaye d’enregistrer la somme contenant des zones à compléter dans Automaths, seul le signe de la somme sera enregistré car Automaths n’enregistre pas les mises en forme. J'ai pensé à ce qu'une macro puisse savoir où stocker le nom de toutes mes insertions automatiques pour qu'elle les remplace automatiquement à chaque fois que je les écris dans un mot « isolé » des autres par des espaces. J’ai demandé à quelqu’un de résoudre mon problème. Cette personne m’a bien fournie un code VBA fonctionnel (les acronymes sont remplacés quand on fait un espace, même dans les zones d’équation mathématiques, on ne l’enclenche qu’une seule fois) mais ce code me pose de nombreux problèmes : 
1) La macro s’active à chaque fois que je clique sur espace, même s’il n’y a pas de remplacement. Cela engendre un très court chargement à chaque fois que je clique sur espace, ce qui est assez gênant 
2) L’insertion est parfois assez lente, au contraire des corrections automatiques, je crois que cela est dû à la trop grande complexité de la macro ou à la longueur des expressions mathématiques insérées 
3) Le code VBA repose sur les noms des objets mathématiques. Or, plusieurs objets mathématiques différents peuvent avoir le même nom : par exemple, la somme de l’image 4 est différente de la somme de l’image 3 mais elles ont le même nom. Il faudrait que la macro se réfère directement au nom que j’ai donné à chaque objet mathématique et non au nom de base. Par exemple, on peut stocker tous les objets dans des quickpart avec des noms différents et les insérer. Voici où ils sont stockés sur mon ordinateur pour le quickpart $test par exemple : Application.Templates( _ "C:\Users\NomUtilisateur\AppData\Roaming\Microsoft\Templates\Normal.dot
m"). _ BuildingBlockEntries("$test").Insert Where:=Selection.Range, RichText:= _ 

5) J’ai constaté de nombreux problèmes avec le curseur qui sautait des lignes, la disposition des lignes qui était modifiée et l’apparition du message d’erreur mypos (voir le code VBA) quand j’utilisais de manière diverse la touche espace : par exemple, si j’insère une équation avec la macro et qu’ensuite je mets un espace dans cette équation même, un message d’erreur apparaît. De plus, il arrive que le message d’erreur apparaisse dans d’autres moments en utilisant l’espace. Il faudrait que la macro ne prenne pas trop de temps pour s’activer et que l’insertion soit fluide, sans aucun problème avec les espaces. De plus, elle doit soit être directement activée à l’ouverture du fichier, soit activée une seule et unique fois à chaque ouverture du fichier (juste après avoir ouvert le document). 

6) Le message d’erreur est totalement inutile et pose des problèmes. Il faudrait le supprimer : si l’insertion ne marche pas, rien ne se passe.

Pouvez-vous m'aider?
  • Le client: est un entrepreneur 
  • Durée indicative: 1 jour
  • Tarif journalier indicatif: 400 €
  • Type de mission: Freelance en télétravail

 
 


Projets "en attente" similaires


Ingenieur developpement C---C- H-F - Regie- Ile de France
transformation et automatisation d-un fichier excel vers un fichier CSV
Finaliser un projet Access.
Developpeur .NET Fullstack - regie - IDF
Mission pour freelance SSIS SSRS

Projets "en cours" similaires


Tracabilite d-une production avec differents composants assembles
Gestion de Clients - Logiciel de caisse stock - Terrain de Paintball
Rapport d-expertise
REALISATION D- UNE FEUILLE DE CALCULS SUR OUTIL EXCEL
Creation automatique de factures a partir de fichier excel

Projets "en archive" similaires


newform prerenseigne a partir d-un element d-un autre liste
Construction fichier indicateur de performances
Amelioration Programme facturation en visual basic et Base access
Application reservation hotel ASP SQL SERVER
REPUBLICATION-Migration C sur tablettes

Projets "VIP" similaires


 

 

 

 

(c)