Sujet dévalider- Insertion valeur d'une cellule sous word

Bonjour à tous,

Alors voilà j'aimerai dans mon fichier Excel incorporer la valeur de la cellule C12 de mon onglet 4 sous un fichier word lui meme incorporer dans le fichier excel

J'ai donc le code suivant

Sub Test()
With Sheets(4)
WsMask.Shapes.Range(Array("SLS")).Select
Selection.Verb Verb:=xlPrimary
WordDoc.Bookmarks("Lieu").Range.Text = Cells(12, 3) '              ici le code s'arrête
End With

Mais j'ai une erreur me disant que l'objet requis est manquant....alors que dans le fichier Word j'ai bien nommé le Signet "Lieu"

Je vous laisse un fichier exemple

Dans un second temps j'aimerai également insérer le tableau de l'onglet 4 au niveau du signet "Tableau" mais chaque chose en sont temps

J'ai du oublier quelques chose mais quoi....

Si vous avez des idées je suis preneur car je suis en manque d'inspiration!

Voici la solution que j'ai mis en place avec un fichier word en dehors du fichier excel

Sub test2()

Dim WordApp As Word.Application

Dim WordDoc As Word.Document

Dim c As Range

With Sheets(4)

a = Cells(12, 3).Value

b = Range("b1048576").End(xlUp).Row

Range(Cells(21, 2), Cells(b, 5)).Copy

Set WordApp = CreateObject("word.application") 'ouvre une session Word

Set WordDoc = WordApp.Documents.Open("H:\Saint Louis\Glims\SLS.docx") 'ouvre le document Word

WordApp.Visible = True 'Word est masqué pendant l'opération

WordDoc.Bookmarks("Lieu").Range.Text = a

WordDoc.Bookmarks("Tableau").Range.Paste

' WordApp.

End With

End Sub

Mais je n'arrive pas à l'appliquer lorsque le docx est considerer comme un objet shape !

si vous avez des idée pour réaliser la meme chose depuis l'objet !

Bonjour,

Sub Test()
'nécessite la référence à Microsoft Word xx Object Library
    t = Sheets("Sans Adresse").Cells(12, 3)

    Set wd = CreateObject("Word.Application")

    ActiveSheet.Shapes.Range(Array("SLS")).Select
    Selection.Verb Verb:=xlPrimary

    With wd.ActiveDocument
    .Bookmarks("Lieu").Select
    .Bookmarks("Lieu").Range.Text = t
    End With
End Sub

Bonsoir,

Merci pour cette réponse Sabv,

mais malheureusement la macro s’arrête sur With wd.ActiveDocument, j' y croyais bien pourtant ,et me dit qu'aucun doc word est ouvert.

Logique je pense, car on ouvre un Shape !

Je creuse aussi dans cette direction mais je tourne en carré!!

Bonjour edlede,

est-ce que vous voyez le Doc s'ouvrir ?

j'ai fait le test sans problème,

Bonjour,

j'ai finalement trouvé, lors du premier test, Word était déjà ouvert sur la recette pour de ce soir

un peu plus tard, après avoir fermer Word, j'ai refait le test et plus rien ne fonctionnait

alors il doit y avoir au moins un document d'ouvert (wd.Documents.Add) avant l'ouverture du document "SLS"

Sub Test1()
'nécessite la référence à Microsoft Word xx Object Library
    t = Sheets("Sans Adresse").Cells(12, 3)

    Set wd = CreateObject("Word.Application")
    Set Dc = wd.Documents.Add

    ActiveSheet.Shapes.Range(Array("SLS")).Select
    Selection.Verb Verb:=xlPrimary

    With wd.ActiveDocument
    .Bookmarks("Lieu").Select
    .Bookmarks("Lieu").Range.Text = t
    End With
End Sub

Merci sabv, de m'aider

J'ai encore un probleme le code s'arrete sur .Bookmarks("Lieu").Select

Sub Test1()
'nécessite la référence à Microsoft Word xx Object Library
   For i = 4 To Sheets.Count
    t = Sheets(i).Cells(1, 1)

    Set wd = CreateObject("Word.Application")
    Set Dc = wd.Documents.Add

    WsMask.Shapes.Range(Array("SLS")).Select
    Selection.Verb Verb:=xlPrimary

    With wd.ActiveDocument
    .Bookmarks("Lieu").Select
    .Bookmarks("Lieu").Range.Text = t
    End With
  Next i
End Sub

Si vous avez une autre idée....

Alors j'ai enfin la solution dont voici le code, pour touos mes onglet et pour inserer 1 valeur (signet Lieu ) et une plage de donnée ( Signet Tableau) . Le fichier word ouvert s'imprime et se referme sans sauvegarde à la fin

Sub PrintSLS()
'nécessite la référence à Microsoft Word xx Object Library
  For i = 4 To Sheets.Count
    Set wd = CreateObject("Word.Application")
    Set Dc = wd.Documents.Add

    With Sheets(i).Select
    t = Sheets(i).Cells(1, 1)
    b = Range("b1048576").End(xlUp).Row - 1
    Range(Cells(3, 2), Cells(b, 5)).Copy
    End With

   With WsMask ' contient l'objet word "SLS"
   .Select
    ActiveSheet.Shapes.Range(Array("SLS")).Select
    Selection.Verb Verb:=xlPrimary
  End With

    With ActiveDocument
    .Bookmarks("Lieu").Select
    .Bookmarks("Lieu").Range.Text = t
    .Bookmarks("Tableau").Range.Paste
    .PrintOut
    .Close DoNotSaveChanges

    End With
    Set WordApp = Nothing
    Set WordDoc = Nothing
  Next i

End Sub

Un grand merci à Sabv pour le coup de main et les différentes pistes,

Je Valide

Bonsoir, Finalement je dois dévalider le sujet,

j'ai toujours un problème avec la sélection du document word

Si une âme charitable pourrai regarder mon fichier le bouton " Edition courrier"

Je me demande si c'est liè à la référence à Microsoft Word xx Object Library qui change selon la version de word.

[Edit]

Le probleme vient bien du Microsoft Word xx Object Library

Peut t-on sélectionner le Microsoft Word xx Object Library en vb dans une macro de démarrage?

Merci d'avance pour vos reponses

11courrier2017427.xlsm (313.39 Ko)

Le problème venais bien du Microsoft Word xx Object Library qui non seulement doit etre " cocher dans les références M-VBA mais également définie au début de la macro.

Dim wd As Object

Dim Dc As Object

puis

Set wd = CreateObject("Word.Application")

Set Dc = wd.Documents.Add

Et voilà ca refonctionne

Rechercher des sujets similaires à "sujet devalider insertion valeur word"