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

VBA Word Discussion :

excel vers word insérer un texte dans un signet


Sujet :

VBA Word

  1. #1
    Membre averti
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut excel vers word insérer un texte dans un signet
    Bonjour,
    j'ai un modèle word avec tous mes signets. je récupère mes informations dans un classeur excel pour remplir mes signets dans mo doc word.

    j’utilise ce type de bout de code pour remplir mes signets mais j'ai une erreur 1004 "impossible de definir la propriété text dans la classe range".
    pour info je récupére bien le contenu de nom dans excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     Nom = LaFeuille.Range("B2").Value
    ...
    Dim RapWd As Object
    Set RapWd = wrdapp.ActiveDocument
     
    RapWd.Bookmarks("nom").Range.Select
    With Selection
        .Text = Nom 'le code s’arrête ici et afficher l'erreur 
        .Font.Bold = True
        .Font.Size = 14
    End With
    une bonne âme aurait une idée?
    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par vanne27 Voir le message
    Bonjour,

    Je pense qu'il vous faut travailler avec une variable de type Word.Selection ou plutôt wrdapp.Selection

    Nb : Avant de travailler avec des variables de type Object, vous devriez tester votre code en référençant directement Word. Vous bénéficierez de l'intellisense en déclarant vos variables de type Word.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim MaSelection as Object
    '....
    Set MaSelection = wrdapp.Selection

  3. #3
    Membre averti
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut excel vers word insérer un texte dans un signet
    Merci Eric pour ton aide, j'ai plutôt utilisé wrdapp
    voici mon code en entier, comment pourrais-je l'améliorer à ton avis?

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    Sub Bookmarks()
     
    Dim wrdapp As Object
    Dim wrddoc As Object
    Dim AppXL As Object
    Dim Classeur As Object
    Dim LaFeuille As Object
    Set wrdapp = CreateObject("Word.Application")
    wrdapp.Visible = True
    Set wrddoc = wrdapp.Documents.Open("C:\Etudes\MACRO\modele\Page.docx")
     
     
        Set AppXL = GetObject(, "Excel.Application")
        Set Classeur = AppXL.Workbooks("RAP_WORD.xlsm")
        Set LaFeuille = Classeur.Sheets("INFO")
     
      Dim Nom As String, Accronyme As String, Protocol As String, Objet As String
     
            Nom = LaFeuille.Range("B2").Value
            Accronyme = LaFeuille.Range("B3").Value
            Protocol = LaFeuille.Range("B4").Value
            Objet = LaFeuille.Range("B5").Value
     
     
    Dim RapWd As Object
    Set RapWd = wrdapp.ActiveDocument
     
    RapWd.Bookmarks("nom").Range.Select
    With Selection
        .Text = Nom
        .Font.Bold = True
        .Font.Size = 14
    End With
     
    RapWd.Bookmarks("Accronyme").Range.Select
    With Selection
        .Text = Accronyme
        .Font.Bold = True
        .Font.Size = 14
    End With
     
    RapWd.Bookmarks("protocol").Range.Select
    With Selection
        .Text = Protocol
        .Font.Bold = True
     End With
     
    RapWd.Bookmarks("objet").Range.Select
    With Selection
        .Text = Objet
        .Font.Bold = True
        .Font.Size = 26
    End With
     
    End Sub

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par vanne27 Voir le message
    Quand tu travailles depuis Excel sur un document Word, il te faut travailler avec une variable de type Word.selection lorsque tu sélectionnes un range dans Word.

    Dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    RapWd.Bookmarks("protocol").Range.Select
    With Selection
        .Text = Protocol
        .Font.Bold = True
     End With
    Selection n'est pas un objet Word. Il te faut instancier une variable comme indiqué dans mon premier message.

  5. #5
    Membre averti
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut excel vers word insérer un texte dans un signet
    Merci Eric, c'est absolument vrai je n'avais pas fais attention.
    super ça marche très bien.

    merci beaucoup pour ton aide

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

Discussions similaires

  1. VBA d'Excel vers Word - Ouvrir un document ET y insérer un tableau Excel
    Par MerlotJep dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/10/2017, 14h48
  2. Insérer du texte dans un objet OLE Word
    Par jaymzwise dans le forum VBA Access
    Réponses: 0
    Dernier message: 16/05/2008, 14h30
  3. [VSTO] Comment insérer du texte dans Word ?
    Par le_sonic dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/04/2008, 20h07
  4. [Excel] Insérer du texte dans un fichier Excel
    Par Longrais dans le forum Langage
    Réponses: 3
    Dernier message: 15/02/2006, 17h46
  5. [HWPF]Insérer du texte dans un doc word.
    Par Hoegaarden dans le forum Documents
    Réponses: 1
    Dernier message: 06/10/2005, 16h04

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