Ouvrir une équation sélectionnée dans une macro Word
Borrull Messages postés 28 Statut Membre -
Bonjour,
J'aimerais si possible disposer d'une macro qui, lorsqu'une équation de l'éditeur est sélectionnée, l'ouvre et la referme.
Et si possible aussi, qui parcourt ainsi toutes les équations du document...
mais quand je suis en mode "enregistrement", je ne peux pas ouvrir les équations. J'aurais donc besoin d'une instruction particulière, si ça existe...
Merci pour votre aide.
8 réponses
L’objectif est une macro Word capable d’ouvrir puis refermer chaque équation de l’éditeur et de parcourir l’ensemble des équations du document, y compris en mode d’enregistrement.
En pratique, Word 2007 utilisait l’éditeur d’équations 3.0 et cet éditeur n’est plus pris en charge, ce qui rend l’automatisation via les objets OMaths inadaptée pour les anciennes équations.
Des solutions proposées incluent l’usage du volet de navigation pour repérer les équations et une macro qui compte les équations via ActiveDocument.Range.OMaths.Count, avec des résultats variables selon la version et parfois un retour zéro.
Certaines observations indiquent que l’ouverture puis la fermeture des équations anciennes peut les réaligner dans le document, ce qui motive l’idée d’automatiser cette opération malgré les contraintes techniques.
-
Bonjour
TU ne dis pas quelle est ta version.
Est-ce que la fonction de recherche ne suffirait pas ?
m@rina
-
Bonjour,
ll s'agit de Word 2007.
Rechercher, oui mais quoi ?
Et ensuite, comment ouvrir en VBA ?
Merci !
-
Bonjour
Je n'ai plus la version 2007 qui a quand même beaucoup de différences avec les versions suivantes, et je ne suis pas certaine qu'on puisse chercher les équations qui étaient faites, si mes souvenirs sont bons, avec un ancien éditeur d'équations.
Actuellement, la recherche peut se faire via le volet de navigation. Pas sûr du tout que ce fut ainsi avec 2007.
Quant à la macro, je ne vois pas très bien ce que tu veux en faire. TU dis il faut que la macro ouvre puis ferme l'équation. Si tu écris une telle macro, il ne va rien se passer ! ça va durer trois secondes, le temps que la macro sélectionne, ouvre puis ferme chaque équation, mais rien d'autre. Quel est le but ?
Essaie déjà de lancer la macro suivante et dis nous si tu as un résultat. ça doit te donner le nombre d'équations de ton document. Si tu as une erreur, c'est que Word 2007 ne sait pas faire ça.
Sub eq() Dim nb nb = ActiveDocument.Range.OMaths.Count MsgBox nb End Subm@rina
-
Bonjour,
Word 2007 utilisait en effet encore de mémoire Microsoft Equation 3.0
Il semble aussi comme tu le dis que la manière d'y référer dans une macro soit différente, voir là si le coeur t'en dit, je suis fâché avec les macros:
https://stackoverflow.com/questions/20632270/how-to-find-equation-editor-in-word-document-using-vba
-
-
Bonjour,
La macro renvoie le résultat 0.
Car j'utilisais alors l'éditeur d'équation de Microsoft, qui est une version allégée de MathType.
Dans ces anciens documents, les équations ne sont plus alignées avec le texte. Mais j'ai remarqué qu'en les ouvrant puis les refermant, elles se replaçaient correctement. D'où l'idée d'automatiser cette tâche. Car j'ai des centaines de pages avec des dizaines d'équations dans chaque page...
Merci pour ton aide.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Tu peux donner un petit extrait du document avec 2 ou 3 équations, qu'on regarde de plus près ?
m@rina
-
oui voilà.
http://paquito.amposta.free.fr/Etude.docx
Après chaque équation, le curseur est en position décalée vers le bas.
Après sélectionner tout>Police>Espacement>Position>Normale, elles sont toutes décalées vers le haut.
Et là, en les ouvrant et les refermant, elles reviennent à la position normale.
Merci...
-
Re...
effectivement, tes équations ont été créées avec l'éditeur d'équations 3.0 qui n'est plus pris en charge. Et comme je n'ai plus d'anciennes versions de Word, je n'ai plus cet éditeur qui a été retiré pour des questions de sécurité.
Donc, je ne suis pas étonnée que ma macro te donne 0, car OMaths ce n'est pas pour ton vieil éditeur d'équations.
Désolée, je ne peux donc rien faire pour toi.
m@rina
-
-
Il y a peut-être moyen de faire quelque chose avec ça, mais je ne m'y connais pas assez en programmation :
Sub Sample()
Dim eqns As OMathFor Each eqns In ActiveDocument.OMaths
'
'~~> Rest of the code
'
End With
Next
End Sub -
Et si, au lieu de chercher spécifiquement une équation, je cherchais les objets OLE ?