écrire une équation dans un document Word avec Visual Basic 2010 [Résolu/Fermé]

Signaler
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
-
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
-
Bonjour,

je sollicite votre aide encore une fois :
j'ai essayé de créer des équation dans un document word via Visual basic 2010 Express
la seul chose que j'ai pu trouvé est pour VBA. Word dans ce lien :
http://software-solutions-online.com/word-vba-creating-equations/
voici le code :
Sub Example3()
Dim objRange As Range
Dim objOMath As OMath
Set objRange = Selection.Range
objRange.Text = _
"f(x)=a_0+" + ChrW(8721) + "_(n=1)^8" + ChrW(9618) + _
"(a_n cos" + ChrW(12310) + "npx/L" + ChrW(12311) + _
"+b_n sin" + ChrW(12310) + "npx/L" + ChrW(12311) + " )"
Set objOMath = OMaths.Add(objRange).OMaths.Item(1)
objOMath.BuildUp
End Sub

j'ai essayé de l'adapter pour Visual basic 2010 express, voici le code :
Imports System.IO
Imports Word = Microsoft.Office.Interop.Word
Public Class Form1
Dim oWord As New Word.Application
Dim oDoc As Word.Document
Dim oPara1 As Word.Paragraph
Dim objOMath As Word.OMath
Dim cheminPlusFichier As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Démarrez Word et ouvrez le modèle de document.
SaveFileDialog1.Filter = "Document Word (*.docx)|*.docx"
SaveFileDialog1.Title = "Enregistrer sous"
SaveFileDialog1.FileName = "Notes de calcul"
If SaveFileDialog1.ShowDialog() = DialogResult.OK Then 'si l'utilisateur a bien cliqué sur ok
cheminPlusFichier = SaveFileDialog1.FileName
System.IO.File.WriteAllBytes(cheminPlusFichier, My.Resources.Note_de_calcul)
End If
cheminPlusFichier = SaveFileDialog1.FileName
oDoc = oWord.Documents.Open(SaveFileDialog1.FileName)
oDoc.Application.DisplayAlerts = False 'supprime les messages d'alerte
'rendre le classeur visible
oWord.Visible = False
'Insert a paragraph at the beginning of the document.
oPara1 = oDoc.Content.Paragraphs.Add
'inserer le text qui se trouve dans la textBox 7
oPara1.Range.Text = _
"f(x)=a_0+" + ChrW(8721) + "_(n=1)^8" + ChrW(9618) + _
"(a_n cos" + ChrW(12310) + "npx/L" + ChrW(12311) + _
"+b_n sin" + ChrW(12310) + "npx/L" + ChrW(12311) + " )"
objOMath = oWord.OMaths.Add(oPara1).oWord.OMaths.Item(1)
objOMath.BuildUp()
End Sub
End Class


première mot l'équation ne se crée pas bien dans Word voici comment elle s'affiche :


et deuxième mot une erreur s'affiche :
L'exception MissingMemberException n'a pas été gérée
Le membre public 'OMaths' du type 'ApplicationClass' est introuvable.

dans ce code :
 objOMath = oWord.OMaths.Add(oPara1).oWord.OMaths.Item(1)

quelqu'un pourrait me suggérer une solution
merci d'avance pour votre aide

Comment ça marche c'est cool! 
      1000 Merci les Amis

1 réponse

Messages postés
183
Date d'inscription
jeudi 16 mai 2013
Statut
Membre
Dernière intervention
31 août 2016
15
Bonsoir,

Vous pouvez utiliser une autre solution toute simple.

Appuyez sur alt et + et vous aurez une zone pour écrire votre formule les option sont dans la barre en haut.


Cordialement Alex-16
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
tu à déjà fait beaucoup juste en essayant de m'aider, je ne connaissais pas l'astuce de Alt et +
ça m'a fait plaisir, Merci beaucoup ^ ^
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
j'ai beau chercher je ne trouve aucun solution, j'ai trouvé quelqu'un qui a le même problème que moi mais il n'a pas trouver de solution
juste une question : quand il affiche l'erreur (Le membre public 'OMaths' du type 'ApplicationClass' est introuvable. ) sa veux dire que Omaths n'appartient pas a ApplicationClass?, es que il faux le déclaré?
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
J'ai même essayé ça :
        objOMath = oDoc.Content.OMaths.Add(oPara1).OMaths.Item(1)

Je croyais que ca aller marcher, mais non ca na pas marcher
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
Vraiment personne ne peut m'aider sur ce problème?
kikou93
Messages postés
418
Date d'inscription
mardi 4 février 2014
Statut
Membre
Dernière intervention
24 septembre 2018
1
Voici la solution :

Imports System.IO
Imports Word = Microsoft.Office.Interop.Word
Public Class Form1
Dim oWord As New Word.Application
Dim oDoc As Word.Document
Dim objOMath As OMath
Dim cheminPlusFichier As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Démarrez Word et ouvrez le modèle de document.
SaveFileDialog1.Filter = "Document Word (*.docx)|*.docx"
SaveFileDialog1.Title = "Enregistrer sous"
SaveFileDialog1.FileName = "Notes de calcul"
If SaveFileDialog1.ShowDialog() = DialogResult.OK Then 'si l'utilisateur a bien cliqué sur ok
cheminPlusFichier = SaveFileDialog1.FileName
System.IO.File.WriteAllBytes(cheminPlusFichier, My.Resources.Note_de_calcul)
End If
cheminPlusFichier = SaveFileDialog1.FileName
oDoc = oWord.Documents.Open(SaveFileDialog1.FileName)
oDoc.Application.DisplayAlerts = False 'supprime les messages d'alerte
'rendre le classeur visible
oWord.Visible = False
'Insert a paragraph at the beginning of the document.
Dim rng As Range = oDoc.Range()
rng.Text = "f(x)=a_0+" + ChrW(8721) + "_(n=1)^8" + ChrW(9618) + _
"(a_n cos" + ChrW(12310) + "npx/L" + ChrW(12311) + _
"+b_n sin" + ChrW(12310) + "npx/L" + ChrW(12311) + " )" & textBox1.text
rng.OMaths.Add(rng)
Dim objEq As OMath = rng.OMaths(1)
objEq.BuildUp()
oWord.ActiveDocument.Close()
oWord.Visible = False
oWord.Quit()
End Sub


Whismeril m'a aidé pour résoudre ce problème
Merci Whismeril