kikou93
Messages postés417Date d'inscriptionmardi 4 février 2014StatutMembreDernière intervention24 septembre 2018
-
2 août 2016 à 16:41
kikou93
Messages postés417Date d'inscriptionmardi 4 février 2014StatutMembreDernière intervention24 septembre 2018
-
3 août 2016 à 20:26
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
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
Whismeril
Messages postés18799Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 6 décembre 2023645 3 août 2016 à 01:05
Alors, marque le sujet résolu, et la prochaine fois essaye de te débrouiller un peu avec ce qu'on te donne.
Certes j'ai posté une traduction depuis le c# incorrecte, mais tu avais tous les éléments en main pour trouver par toi même.
Whismeril
Messages postés18799Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 6 décembre 2023645 3 août 2016 à 01:36
Ça m'a rappelé que je t'avais déjà reproché ton manque d'efforts fin avril, 3 mois plus tard ça n'a guère évolué
kikou93
Messages postés417Date d'inscriptionmardi 4 février 2014StatutMembreDernière intervention24 septembre 20181 3 août 2016 à 10:06
crois moi depuis ce jour je fais beaucoup d'effort pour créer un code et le corriger, je fais beaucoup de recherche et je poste le sujet qu'en tout dernier recours
kikou93
Messages postés417Date d'inscriptionmardi 4 février 2014StatutMembreDernière intervention24 septembre 20181 3 août 2016 à 10:10
désolé de te déranger encore
juste une dernière chose quand j'ouvre le document une boîte dialogue s'affiche me disant que le document est verrouillé, il me propose trois choix l'un d'eux est d'ouvrir une copie
aprés avoir choisi ce choix le document s'ouvre et à la fermeture du document une autre boîte s'affiche me demandant d'enregistrer les modification même si j'ai rien modifier
peux-tu s'il te plait juste me guider et j'essaierai de me débrouiller seul pour me débarrasser de ces deux boîte de dialogue
kikou93
Messages postés417Date d'inscriptionmardi 4 février 2014StatutMembreDernière intervention24 septembre 20181 3 août 2016 à 11:06
je crois avoir fini par trouver une solution, il suffit d'ajouter :
oWord.ActiveDocument.Close()
oWord.Visible = False
oWord.Quit()
Merci pour ton aide précieuse
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
kikou93
Messages postés417Date d'inscriptionmardi 4 février 2014StatutMembreDernière intervention24 septembre 20181 2 août 2016 à 18:37
Merci de m'avoir répondu
crois moi j'ai vraiment beaucoup chercher (plus qu'une semaine)
mais ton code quand je le copie dans visual basic express 2010, beaucoup d'erreurs s'affiches
alors si ça ne te dérange pas peux-tu l'intégrer dans mon code s'il te plait
Whismeril
Messages postés18799Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 6 décembre 2023645 2 août 2016 à 18:46
Quelles erreurs?
kikou93
Messages postés417Date d'inscriptionmardi 4 février 2014StatutMembreDernière intervention24 septembre 20181 2 août 2016 à 19:04
si j'ai bien compris
rng c'est oPara1 dans mon code et objEq c'est objOMath dans mon code
quand je copie ton code dans visual basic 2010 avec mon code
1. j'aperçois que l'espace dans " Range rng " n'est pas acceptable dans visual basic
Range.oPara1 = oDoc.Rage
quand je remplace ( rng Par oPara1 et objEq par objOMath) il y les erreur qui s'affiche dans le code :
oPara1.Range = oDoc.Range()
oPara1.Text = "BD/DC = AB/AC "
oPara1 = oPara1.Omaths.Add(oPara1)
objOMath.Omath =oPara1.Omaths(1)
objOMath.BuildUp()
oPara1.Range et oPara1.Text ne sont pas acceptable
tu c'est je ne comprend pas beaucoup ce code je suis sur d'avoir fait beaucoup d'erreurs
Vous n’avez pas trouvé la réponse que vous recherchez ?
Whismeril
Messages postés18799Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 6 décembre 2023645 2 août 2016 à 21:23
Au temps pour moi, je l'ai mal traduit en vb
dim rng as Range = oDoc.Range()
rng.Text = "BD/DC = AB/AC "
rng = rng.OMaths.Add(rng)
OMath objEq = rng.OMaths(1)
objEq.BuildUp()
kikou93
Messages postés417Date d'inscriptionmardi 4 février 2014StatutMembreDernière intervention24 septembre 20181 2 août 2016 à 21:56
maintenant il affiche l'erreur "La référence d'objet n'est pas définie à une instance d'un objet." ici : "rng = rng.OMaths.Add(rng)"
parfois quand on utilise un site pour convertir, ce n'ai pas juste à 100%
si ça ne te dérange pas peux-tu l'intégrer dans mon code s'il te plait
Voici un exemple du fichier :
http://www.cjoint.com/c/FHct3JPC3Wh
Whismeril
Messages postés18799Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 6 décembre 2023645 3 août 2016 à 19:54
Je te conseille de laisser Word visible, si ton application plante, Word reste actif et tu n'as plus accès au fichier.
Si Word est visible, il est aisé de le fermer.
Sinon, la seule solution est de tuer le processus.
kikou93
Messages postés417Date d'inscriptionmardi 4 février 2014StatutMembreDernière intervention24 septembre 20181 3 août 2016 à 20:26
je n'avais pas pensé a ça, je vais le rendre visible
merci pour le conseil
3 août 2016 à 00:21
merci infiniment tu m'a beaucoup aidé
je te suis reconnaissant