IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] Mise à jour signet dans word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Par défaut [VBA-E] Mise à jour signet dans word
    J'ai un problème pour mettre à jour un signet dans word depuis VBA excel.(office2002)
    Je met mon texte dans le signet mais le signet s'efface ensuite!!
    Pourtant, je crée un nouveau signet (meme nom)au meme endroit avec "range" mais ca ne marche pas!!

    aidez moi...Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ton code siouplé

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Par défaut
    le voila...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub IntroVersSignet()
        Dim RA As String
        Dim Txtintro As String
        Dim ObjWord As Word.Application
        Dim LeDocWord As Word.Document
        Dim Rngintro As Range
     
        On Error Resume Next
     
        RA = ThisWorkbook.Path & "\RA1.doc"
        Set ObjWord = CreateObject("Word.Application")
        ObjWord.Visible = True
        Set LeDocWord = ObjWord.Documents.Open(RA)
        Txtintro = Feuil1.TextBox_intro.Text
     
        Set Rngintro = LeDocWord.Bookmarks("intro").Range
     
        With LeDocWord
        'Le nom du signet dans le document word est ici "intro"
        .Bookmarks("intro").Range.Text = Txtintro
        .Bookmarks.Add "intro", Rngintro
        End With
     
        'LeDocWord.Bookmarks.Add "intro", Rngintro
     
        'Pour enregistrer le document et quitter Word
        LeDocWord.Save
        ObjWord.Quit
     
        'Set ObjWord = Nothing
    End Sub

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu ne peux pas faire ça. Si tu ajoutes un signet, tu effaces l'ancien (pas le texte, mais le signet).
    Pour affecter un signet à du text, tu dois sélectionner ton texte, puis, lui affecter le signet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Txtintro = Feuil1.TextBox_intro.Text
        Selection.GoTo What:=wdGoToBookmark, Name:="Intro"
        Selection.TypeText Text:=Txtintro
        Selection.Find.ClearFormatting
        Selection.Find.Text = Txtintro
        Selection.Find.Execute
        ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="Intro"
    Ceci dit, si le texte est très long, j'ignore si ça fonctionne
    Tu dis

    Edit
    Je n'ai pas utilisé l'instance de l'appli, n'oublie pas de la rajouter

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Par défaut
    ca ne marche pas, je créee mon signet à la fin de la macro, ca c'est bon!! mais mon texte dans le signet n'est pas mis à jour.

    je renvoie le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub IntroVersSignet()
        Dim RA As String
        Dim Txtintro As String
        Dim ObjWord As Word.Application
        Dim LeDocWord As Word.Document
        Dim Rngintro As Range
     
        On Error Resume Next
     
        RA = ThisWorkbook.Path & "\RA1.doc"
        Set ObjWord = CreateObject("Word.Application")
        ObjWord.Visible = True
        Set LeDocWord = ObjWord.Documents.Open(RA)
        Txtintro = Feuil1.TextBox_intro.Text
     
        Selection.GoTo What:=wdGoToBookmark, Name:="intro"
        Selection.TypeText Text:=Txtintro
        Selection.Find.ClearFormatting
        Selection.Find.Text = Txtintro
        Selection.Find.Execute
        ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="intro"
     
     
        'Pour enregistrer le document et quitter Word
        LeDocWord.Save
        ObjWord.Quit
     
        'Set ObjWord = Nothing
    End Sub

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Autant pour moi, mon code testé hier ne fonctionne plus aujourd'hui
    J'ai corrigé pour qu'il fonctionne mais là, j'ai du mal à comprendre.
    Tel qu'il fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Selection.HomeKey Unit:=wdStory
        'Txtintro = Feuil1.TextBox_intro.Text
        Txtintro = "répertoriées sont nouvelles"
        Selection.GoTo What:=wdGoToBookmark, Name:="Intro"
        Selection.TypeText Text:=Txtintro
        Selection.HomeKey Unit:=wdStory '***** Ajouté
        Selection.Find.ClearFormatting
        With Selection '***** modifié mais qui ne devrait rien changer
            .Find.Text = Txtintro
        End With
        Selection.Find.Execute
        With Selection
            .Bookmarks.Add Name:="Intro" '**** modifié
        End With
    Tu dis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Mise à jour DOCVARIABLE dans un document Word
    Par sieste68 dans le forum Langage
    Réponses: 0
    Dernier message: 13/04/2012, 12h08
  2. Réponses: 0
    Dernier message: 30/11/2011, 17h56
  3. [VBA][EXCEL] Mise à jour de TCD en macro
    Par Scuriolus dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 07/12/2005, 13h30
  4. [c#][VS2003]Mise à jour propriété dans le designer
    Par cedkat dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/11/2005, 15h10
  5. Création étiquettes avec signets dans Word
    Par rohstev dans le forum VBA Word
    Réponses: 2
    Dernier message: 18/03/2005, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo