Sub OuvertureUserForm() Load UserForm1 UserForm1.Show End Sub Public Sub formulaire() UserForm1.Show End Sub Option Explicit Private Sub userform_initialize() Me.TextBox1.SetFocus End Sub Private Sub commandbutton1_click() Me.hide End Sub Private Sub commandbutton2_click() Dim q As String q = Me.TextBox1.Text ActiveDocument.Bookmarks("Titre").Range.Text = q ActiveDocument.Fields.Update Me.hide End Sub
j'ai sélectionné "Titre" avec la souris, suis allé dans Insertion/Signet puis est nommé le signet 'Signet1'.... Normal... vu que tu as donné comme nom de signet :" Signet 1" ... alors que ton code veux un signet dont le nom est : "Titre"
.Bookmarks("Titre")
Private Sub commandbutton1_click() Me.hide End Sub
Private Sub commandbutton2_click() Dim q As String q = Me.TextBox1.Text ActiveDocument.Bookmarks("Titre").Range.Text = q ActiveDocument.Fields.Update Me.hide End Sub
Private Sub CommandButton1_Click()
End Sub
Private Sub CommandButton2_Click()
End Sub
Me.Hide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionFunction majSignet(signetName As String, SignetValue As String) As Boolean If ActiveDocument.Bookmarks.Exists(signetName) = True Then ActiveDocument.Bookmarks(signetName).Range.Text = SignetValue ActiveDocument.Fields.Update majSignet = True Else majSignet = False End If End Function Sub Test() If majSignet("test3", "nouvelle valeur") Then MsgBox "Update réussi !" Else MsgBox "Update ko !" End If End Sub
Imports System Imports System.Collections.Generic Imports System.Text Imports System.Windows.Forms Imports Microsoft.Office.Interop.Word Public Class GestionWord #Region "Déclarations " Private _ApplicationWord As Microsoft.Office.Interop.Word.Application Private _MonDocument As Microsoft.Office.Interop.Word._Document 'Microsoft.Office.Interop.Word.Selection _MaSelection; Private _MonRange As Microsoft.Office.Interop.Word.Range Private _MonSignet As Bookmark Private _MesSignets As Bookmarks Private _MonImage As InlineShape Private M As Object = System.Reflection.Missing.Value #End Region #Region "Initialisation Sauvegarde " ''' <summary> ''' Cette classe sert d'interface entre word et une apllication C#. ''' Le constructeur démarre word. ''' </summary> Public Sub New() _ApplicationWord = New Microsoft.Office.Interop.Word.Application _ApplicationWord.Visible = True End Sub ''' <summary> ''' Ouvre un fichier existant. ''' </summary> ''' <param name="FileName">Chemin du document</param> Public Sub OuvrirFichier(ByVal FileName As String) Dim oFileName As Object = CObj(FileName) Dim Faux As Object = CObj(False) Dim Vrai As Object = CObj(True) _MonDocument = _ApplicationWord.Documents.Add(oFileName, Faux, M, Vrai) End Sub ''' <summary> ''' Enregistrer le document sous. ''' </summary> ''' <param name="FileName">Chemin du docmuent</param> Public Sub Sauver(ByVal FileName As String) Dim oFileName As Object = CObj(FileName) Dim Faux As Object = CObj(False) Dim Vrai As Object = CObj(True) Try _MonDocument.SaveAs(oFileName, M, M, M, M, M, M, M, M, M, M, M, M, M, M, M) Catch MessageBox.Show("Le fichier Word n'a pas pu être enregistré.", "Erreur d'enregistrement", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End Try End Sub ''' <summary> ''' Fermer le document et l'application word. ''' </summary> Public Sub Fermer() _MonDocument.Close(M, M, M) _ApplicationWord.Application.Quit(M, M, M) End Sub #End Region #Region "Manipulation document " ''' <summary> ''' Fusionne plusieurs documents en un seul. ''' </summary> ''' <param name="FichierPrincipal">Document à la suite duquel les autres seront insérer.</param> ''' <param name="FichiersAInserer">Tableau contenant les chemins des documents à insérer</param> Public Sub FusionnerPlusieurFichiers(ByVal FichierPrincipal As String, ByVal FichiersAInserer() As String) Me.OuvrirFichier(FichierPrincipal) 'on insere une page vierge sinon ça merde, nécessit une signet à la fin de la page Me.AtteindreSignet("FinPage") Dim Type As Object = CObj(WdBreakType.wdPageBreak) _MonRange.InsertBreak(Type) 'on insere les fichiers words exétieurs 'decompte à l'envers car, il insere le fichier apres le saut de page, 'puis le fichier suivant au même endroit etc.. For i As Integer = FichiersAInserer.Length - 1 To 0 Step -1 Dim FileName As String = FichiersAInserer(i) _MonRange.InsertFile(FileName, M, M, M, M) Next i 'on supprime la page vierge Me.SupprimePage(FichiersAInserer.Length + 2) End Sub ''' <summary> ''' Supprime une page. ''' </summary> ''' <param name="NumeroPage">Numéro de la page à supprimer</param> Public Sub SupprimePage(ByVal NumeroPage As Integer) AtteindrePage(NumeroPage) 'Supprime la selection Dim MaSelection As Selection = _ApplicationWord.Selection MaSelection.TypeBackspace() End Sub ''' <summary> ''' Insere un saut de page aprés le range ''' </summary> Public Sub InsererPage() Dim Typ As Object = CObj(WdBreakType.wdPageBreak) _MonRange.InsertBreak(Typ) End Sub #End Region #Region "Traitement de Texte " ''' <summary> ''' Atteindre un signet dans le document. ''' </summary> ''' <param name="NomSignet"></param> ''' <returns></returns> Public Function AtteindreSignet(ByVal NomSignet As String) As Boolean Dim Nom As Object = CObj(NomSignet) 'récupére la liste de signets _MesSignets = _MonDocument.Bookmarks 'si le signet cherché existe If _MesSignets.Exists(NomSignet) Then 'on positionne le range sur le signet et la fonction retourne true _MonSignet = _MesSignets.Item(Nom) _MonSignet.Select() _MonRange = _MonSignet.Range Return True Else 'Un message d'erreur est affiché, et la fonction retourne false MessageBox.Show(String.Format("Le signet {0} n'existe pas dans le fichier.", NomSignet), "Insertion impossible", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Return False End If End Function ''' <summary> ''' Atteindre un signet dans le document et insérer du texte aprés. ''' </summary> ''' <param name="NomSignet"></param> ''' <param name="Texte">Texte à insérer</param> ''' <returns></returns> Public Function AtteindreSignet(ByVal NomSignet As String, ByVal Texte As String) As Boolean 'si on a atteint le signet If AtteindreSignet(NomSignet) Then 'on insère le texte aprés le signet, la fonction retourne true _MonRange.InsertAfter(Texte) Return True End If Return False End Function ''' <summary> ''' Ecrire du texte à la suite de l'emplacement séléctionné. ''' </summary> ''' <param name="Texte"></param> ''' <returns></returns> Public Function EcrireTexteApresLaSelection(ByVal Texte As String) As Boolean Try 'on insère le texte aprés le signet, la fonction retourne true _MonRange.InsertAfter(Texte) Return True Catch Return False End Try End Function ''' <summary> ''' Applique la valeur WdParagraphAlignment à un range ''' </summary> ''' <param name="Alignement"></param> Public Sub AlignementRange(ByVal Alignement As WdParagraphAlignment) _MonRange.ParagraphFormat.Alignment = Alignement End Sub ''' <summary> ''' Atteint et selectionne une page ''' </summary> ''' <param name="NumeroPage"></param> Public Sub AtteindrePage(ByVal NumeroPage As Integer) Dim what As Object = CObj(WdGoToItem.wdGoToPage) Dim whitch As Object = CObj(WdGoToDirection.wdGoToFirst) Dim Numero As Object = CObj(NumeroPage) 'Atteindre la page voulue _MonRange = _MonDocument.GoTo(what, whitch, Numero, M) 'La selectionner _MonRange.Select() End Sub #End Region #Region "Image " ''' <summary> ''' Insere une photo à l'endroit sélectionné. ''' </summary> ''' <param name="FichierImage"></param> Public Sub InsereImage(ByVal FichierImage As String) 'Selection.InlineShapes.AddPicture FileName:= _ Dim monFalse As Object = CObj(False) Dim monTrue As Object = CObj(True) _MonImage = _MonRange.InlineShapes.AddPicture(FichierImage, monFalse, monTrue, M) End Sub ''' <summary> ''' Modifie la taille de l'image. ''' </summary> ''' <param name="Pourcent"></param> Public Sub TailleImage(ByVal Pourcent As Integer) Dim Height As Single = _MonImage.Height ' = 360.3 Dim Width As Single = _MonImage.Width ' = 256.8 _MonImage.Height = Height * Pourcent \ 100 _MonImage.Width = Width * Pourcent \ 100 End Sub #End Region End Class
Dim word as new GestionWordmais la mon ordi est éteint je ne suis pas sur à 100%
Dim monWord As New GestionWord() monWord.OuvrirFichier("G:\Test.docx") monWord.AtteindreSignet("signet1", "Nouveau Texte") monWord.Sauver("G:\Test2.docx")
: L'espace de noms ou le type spécifié dans les Imports 'System.Windows.Forms' ne contient aucun membre public. Vérifiez que l'espace de noms ou le type est défini et qu'il contient au moins un membre public.V2rifiez que le nom de l'élément importé n'utilise ps d'autres alias.et
'MessageBox' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.'