Je mets en place un site Web en ASP.NET/C#. Pour celui-ci, je dois
g=E9n=E9rer un document word auquel j'ai ajout=E9 des signets afin de les
traiter dans mon code. Jusque l=E0 tout fonctionne.
Mon probl=E8me est que dans mon fichier word, j'ai un tableau excel
incorpor=E9 et j'aimerais bien pouvoir ajouter =E9galement des valeurs
dedans.
Est ce que c'est possible? Si oui comment le coder?
Voici pour l'instant mon code:
Microsoft.Office.Interop.Word.Application msWord =3D new
Microsoft.Office.Interop.Word.Application();
msWord.Visible =3D true; // Cette variable permet d'ouvrir le document
Word cr=E9=E9
Microsoft.Office.Interop.Word._Document nvDoc;
object missing =3D System.Reflection.Missing.Value;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Guy Marcil
was telling us: nous racontait que :
Bonjour,
Je mets en place un site Web en ASP.NET/C#. Pour celui-ci, je dois générer un document word auquel j'ai ajouté des signets afin de les traiter dans mon code. Jusque là tout fonctionne.
Mon problème est que dans mon fichier word, j'ai un tableau excel incorporé et j'aimerais bien pouvoir ajouter également des valeurs dedans.
Est ce que c'est possible? Si oui comment le coder?
Voici pour l'instant mon code:
Microsoft.Office.Interop.Word.Application msWord = new Microsoft.Office.Interop.Word.Application(); msWord.Visible = true; // Cette variable permet d'ouvrir le document Word créé Microsoft.Office.Interop.Word._Document nvDoc; object missing = System.Reflection.Missing.Value;
Je ne peux pas répondre en C#, mais voici trois petites Sub VBA qui manipulent des objets Excel. Il faut aussi savoir que le code est différent selon le type d'objet ("en ligne" ou "flottant").
Le SendKeys est un peu barbare, mais je ne vois pas d'autres moyen de déactiver l'objet...
'_______________________________________ Option Explicit '_______________________________________ Sub ModifierToutesInlinshapeExcel()
Dim Shp As InlineShape Dim Doc As Document Dim objEXL As Object Dim rgeDebut As Range
Set Doc = ActiveDocument Set rgeDebut = Selection.Range
For Each Shp In Doc.InlineShapes If Shp.Type = wdInlineShapeEmbeddedOLEObject Then If Shp.OLEFormat.ProgID = "Excel.Sheet.8" Then Shp.OLEFormat.Activate Set objEXL = Shp.OLEFormat.Object With objEXL.ActiveSheet .Cells(1, 1).Value = "Nouveau Texte" End With SendKeys "{ESC}" End If End If Next Shp
rgeDebut.Select
End Sub '_______________________________________
'_______________________________________ Sub ModifierToutesShapeExcel()
Dim Shp As Shape Dim Doc As Document Dim objEXL As Object Dim rgeDebut As Range
Set Doc = ActiveDocument Set rgeDebut = Selection.Range
For Each Shp In Doc.Shapes If Shp.Type = msoEmbeddedOLEObject Then If Shp.OLEFormat.ProgID = "Excel.Sheet.8" Then Shp.OLEFormat.Activate Set objEXL = Shp.OLEFormat.Object With objEXL.ActiveSheet .Cells(1, 1).Value = "Texte" End With SendKeys "{ESC}" End If End If Next Shp
rgeDebut.Select
End Sub '_______________________________________
'_______________________________________ Sub ModifierSpecifiqueInlineShapeExcel()
Dim Shp As InlineShape Dim Doc As Document Dim objEXL As Object Dim rgeDebut As Range
Set Doc = ActiveDocument Set rgeDebut = Selection.Range
Set Shp = Doc.InlineShapes(1)
Shp.OLEFormat.Activate Set objEXL = Shp.OLEFormat.Object With objEXL.ActiveSheet .Cells(1, 1).Value = "Texte Unique" End With SendKeys "{ESC}"
rgeDebut.Select
End Sub '_______________________________________
--
Salut! _______________________________________ Jean-Guy Marcil - Word MVP
Word MVP site: http://www.word.mvps.org
laurent.spahlholz@hotmail.fr was telling us:
laurent.spahlholz@hotmail.fr nous racontait que :
Bonjour,
Je mets en place un site Web en ASP.NET/C#. Pour celui-ci, je dois
générer un document word auquel j'ai ajouté des signets afin de les
traiter dans mon code. Jusque là tout fonctionne.
Mon problème est que dans mon fichier word, j'ai un tableau excel
incorporé et j'aimerais bien pouvoir ajouter également des valeurs
dedans.
Est ce que c'est possible? Si oui comment le coder?
Voici pour l'instant mon code:
Microsoft.Office.Interop.Word.Application msWord = new
Microsoft.Office.Interop.Word.Application();
msWord.Visible = true; // Cette variable permet d'ouvrir le document
Word créé
Microsoft.Office.Interop.Word._Document nvDoc;
object missing = System.Reflection.Missing.Value;
Je ne peux pas répondre en C#, mais voici trois petites Sub VBA qui
manipulent des objets Excel.
Il faut aussi savoir que le code est différent selon le type d'objet ("en
ligne" ou "flottant").
Le SendKeys est un peu barbare, mais je ne vois pas d'autres moyen de
déactiver l'objet...
'_______________________________________
Option Explicit
'_______________________________________
Sub ModifierToutesInlinshapeExcel()
Dim Shp As InlineShape
Dim Doc As Document
Dim objEXL As Object
Dim rgeDebut As Range
Set Doc = ActiveDocument
Set rgeDebut = Selection.Range
For Each Shp In Doc.InlineShapes
If Shp.Type = wdInlineShapeEmbeddedOLEObject Then
If Shp.OLEFormat.ProgID = "Excel.Sheet.8" Then
Shp.OLEFormat.Activate
Set objEXL = Shp.OLEFormat.Object
With objEXL.ActiveSheet
.Cells(1, 1).Value = "Nouveau Texte"
End With
SendKeys "{ESC}"
End If
End If
Next Shp
rgeDebut.Select
End Sub
'_______________________________________
'_______________________________________
Sub ModifierToutesShapeExcel()
Dim Shp As Shape
Dim Doc As Document
Dim objEXL As Object
Dim rgeDebut As Range
Set Doc = ActiveDocument
Set rgeDebut = Selection.Range
For Each Shp In Doc.Shapes
If Shp.Type = msoEmbeddedOLEObject Then
If Shp.OLEFormat.ProgID = "Excel.Sheet.8" Then
Shp.OLEFormat.Activate
Set objEXL = Shp.OLEFormat.Object
With objEXL.ActiveSheet
.Cells(1, 1).Value = "Texte"
End With
SendKeys "{ESC}"
End If
End If
Next Shp
rgeDebut.Select
End Sub
'_______________________________________
'_______________________________________
Sub ModifierSpecifiqueInlineShapeExcel()
Dim Shp As InlineShape
Dim Doc As Document
Dim objEXL As Object
Dim rgeDebut As Range
Set Doc = ActiveDocument
Set rgeDebut = Selection.Range
Set Shp = Doc.InlineShapes(1)
Shp.OLEFormat.Activate
Set objEXL = Shp.OLEFormat.Object
With objEXL.ActiveSheet
.Cells(1, 1).Value = "Texte Unique"
End With
SendKeys "{ESC}"
rgeDebut.Select
End Sub
'_______________________________________
--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org
Je mets en place un site Web en ASP.NET/C#. Pour celui-ci, je dois générer un document word auquel j'ai ajouté des signets afin de les traiter dans mon code. Jusque là tout fonctionne.
Mon problème est que dans mon fichier word, j'ai un tableau excel incorporé et j'aimerais bien pouvoir ajouter également des valeurs dedans.
Est ce que c'est possible? Si oui comment le coder?
Voici pour l'instant mon code:
Microsoft.Office.Interop.Word.Application msWord = new Microsoft.Office.Interop.Word.Application(); msWord.Visible = true; // Cette variable permet d'ouvrir le document Word créé Microsoft.Office.Interop.Word._Document nvDoc; object missing = System.Reflection.Missing.Value;
Je ne peux pas répondre en C#, mais voici trois petites Sub VBA qui manipulent des objets Excel. Il faut aussi savoir que le code est différent selon le type d'objet ("en ligne" ou "flottant").
Le SendKeys est un peu barbare, mais je ne vois pas d'autres moyen de déactiver l'objet...
'_______________________________________ Option Explicit '_______________________________________ Sub ModifierToutesInlinshapeExcel()
Dim Shp As InlineShape Dim Doc As Document Dim objEXL As Object Dim rgeDebut As Range
Set Doc = ActiveDocument Set rgeDebut = Selection.Range
For Each Shp In Doc.InlineShapes If Shp.Type = wdInlineShapeEmbeddedOLEObject Then If Shp.OLEFormat.ProgID = "Excel.Sheet.8" Then Shp.OLEFormat.Activate Set objEXL = Shp.OLEFormat.Object With objEXL.ActiveSheet .Cells(1, 1).Value = "Nouveau Texte" End With SendKeys "{ESC}" End If End If Next Shp
rgeDebut.Select
End Sub '_______________________________________
'_______________________________________ Sub ModifierToutesShapeExcel()
Dim Shp As Shape Dim Doc As Document Dim objEXL As Object Dim rgeDebut As Range
Set Doc = ActiveDocument Set rgeDebut = Selection.Range
For Each Shp In Doc.Shapes If Shp.Type = msoEmbeddedOLEObject Then If Shp.OLEFormat.ProgID = "Excel.Sheet.8" Then Shp.OLEFormat.Activate Set objEXL = Shp.OLEFormat.Object With objEXL.ActiveSheet .Cells(1, 1).Value = "Texte" End With SendKeys "{ESC}" End If End If Next Shp
rgeDebut.Select
End Sub '_______________________________________
'_______________________________________ Sub ModifierSpecifiqueInlineShapeExcel()
Dim Shp As InlineShape Dim Doc As Document Dim objEXL As Object Dim rgeDebut As Range
Set Doc = ActiveDocument Set rgeDebut = Selection.Range
Set Shp = Doc.InlineShapes(1)
Shp.OLEFormat.Activate Set objEXL = Shp.OLEFormat.Object With objEXL.ActiveSheet .Cells(1, 1).Value = "Texte Unique" End With SendKeys "{ESC}"
rgeDebut.Select
End Sub '_______________________________________
--
Salut! _______________________________________ Jean-Guy Marcil - Word MVP
Voilà ce que j'ai essayé de faire en C#. ça fonctionne presque car mon document word sélectionne l'objet excle seulement au moment de convertir objEXL, j'ai une erreur de cast. Je ne sais pas du tout comment convertir en C# cette partie de code. With objEXL.ActiveSheet .Cells(1, 1).Value = "Texte Unique" End With
Je pense que je suis obligé d'utiliser le get_Range
Voilà ce que j'ai essayé de faire en C#. ça fonctionne presque car mon
document word sélectionne l'objet excle seulement au moment de
convertir objEXL, j'ai une erreur de cast. Je ne sais pas du tout
comment convertir en C# cette partie de code.
With objEXL.ActiveSheet
.Cells(1, 1).Value = "Texte Unique"
End With
Je pense que je suis obligé d'utiliser le get_Range
Voilà ce que j'ai essayé de faire en C#. ça fonctionne presque car mon document word sélectionne l'objet excle seulement au moment de convertir objEXL, j'ai une erreur de cast. Je ne sais pas du tout comment convertir en C# cette partie de code. With objEXL.ActiveSheet .Cells(1, 1).Value = "Texte Unique" End With
Je pense que je suis obligé d'utiliser le get_Range
carriere_59
J'ajouterai que mon objEXL ne comporte aucune propriété si je ne le caste pas
J'ajouterai que mon objEXL ne comporte aucune propriété si je ne le
caste pas