Word vba - word vers excel [resolu]

Keran

XLDnaute Junior
Bonjour ,
Voila je me casse la tete a trouver un moyen depuis word de copier un signet du document word , de le coller dans une celulle precisse (h1) d'un document excel puis de copier la case (i8) pour le collet dans un signet word.

je ne sais pas si c'est claire.
j'ai fait cela
VB:
Sub test()
On Error Resume Next
   Dim MonApplication As Object
   Dim MonFichier As String
   Set MonApplication = CreateObject("Shell.Application")
 
   MonFichier = "\M.xlsx"
   Documents("evry.docm").Activate
    ActiveDocument.Tables(1).Rows(2).Cells(4).Select
    Selection.range.Case = wdTitleSentence
    ActiveDocument.Tables(1).Rows(2).Cells(4).Select
    Selection.Copy
 
   MonApplication.Open (MonFichier)
    ActiveDocument.sheet(1).range("H1").Select
    Selection.Paste
    ActiveDocument.sheet(1).range("I8").Select
    Selection.Copy
 
    Documents("evry.docm").Activate
    Selection.GoTo What:=wdGoToBookmark, Name:="ville2"
    Selection.PasteAndFormat (wdFormatPlainText)
 
   Set MonApplication = Nothing
End Sub

merci d'avance
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Keran

0=>Keran
tests OK sur Excel 2013

(Le signet est déjà existant dans le document Word)
VB:
Sub Signet_WORD_vers_Cellule_XL()
Dim appWord As Object, Doc As Object, strFich$
'Attention:=> CHANGER Chemin et nom du fichier WORD
strFich = "C:\Users\STAPLE1600\Documents\tests\test.docx"
Set appWord = CreateObject("Word.Application")
    With appWord
        .Visible = True
        Set Doc = .Documents.Open(strFich)
        With Doc
            ActiveSheet.[H1].Value = .Bookmarks("ville2").Range.Text
            .Save
        End With
        .Quit
    End With
End Sub

Sub Copie_Cellule_XL_vers_Signet_WORD()
Dim appWord As Object, Doc As Object, strFich$, BMRange As Object
'Attention:=> CHANGER Chemin et nom du fichier WORD
strFich = "C:\Users\STAPLE1600\Documents\tests\test.docx"
Set appWord = CreateObject("Word.Application")
    With appWord
        .Visible = True
        Set Doc = .Documents.Open(strFich)
            With Doc
                Set BMRange = .Bookmarks("ville2").Range
                BMRange.Text = ActiveSheet.[I8]
                .Bookmarks.Add "ville2", BMRange
                .Save
            End With
        .Quit
    End With
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Non, ce n'est pas compliqué.
Il suffit de faire les recherches idoines puis les adaptations nécessaires ;)
NB: Activer les références à librairie Excel dans VBE
(voir sur le net pour le mode opératoire)
VB:
Sub SignetsWord_Excel()
Dim xlApp As Excel.Application, xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet, BMRange As Word.Range, strFich$
'Attention:=> CHANGER Chemin et nom du fichier EXCEL
strFich = "C:\Users\STAPLE1600\Documents\tests\testA.xlsx"
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(strFich)
Set xlSheet = xlBook.Sheets(1) 'ici 1ère feuille du classeur
    xlSheet.Range("H1") = ActiveDocument.Bookmarks("ville2").Range.Text
    Set BMRange = ActiveDocument.Bookmarks("ville3").Range
    BMRange.Text = xlSheet.Range("I8")
    ActiveDocument.Bookmarks.Add "ville3", BMRange
    xlBook.Close SaveChanges:=True
    xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing
End Sub
Dans cet exemple, il y a deux signets préexistants sur le document Word
(ville2 et ville3)

test OK sur Word et Excel 2013.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Par recherches idoines, j'entendais : faire des recherches sur le net.
(pour avoir des exemples de syntaxe VBA Word)

Si tu suis les étapes décrites, cela doit fonctionner puisque cela fonctionne chez moi.
1) As-tu activé les références ?
2) As-tu changé le nom du dossier et le nom du fichier Excel ?
3) Il y a bien deux signets dans ton document Word ?

Si tu as répondu oui à ces trois questions alors cela doit fonctionner.
 

soan

XLDnaute Barbatruc
Bonjour Keran, Staple,

post #9 : « je suis en train de tester mais ça m'a l'air bon :) »
quand j'ai lu ça, j'ai failli écrire : « champagne ! 🍾 »

là, j'm'aperçois qu'c'est pas encore fini ! et miracle : le code VBA de Staple
fais même ce qu'il a pas demandé : il essaye de supprimer une page ! 😅

Staple, serait-ce que ton code VBA éprouve des désirs d'indépendance
et d'autonomie, comme les écossais ? 🤪 😁


soan
 

Staple1600

XLDnaute Barbatruc
Re

[billevesées soaniennes]
là, j'm'aperçois qu'c'est pas encore fini ! et miracle : le code VBA de Staple
fais même ce qu'il a pas demandé : il essaye de supprimer une page ! 😅
[/billevesées]

C'est l'adaptation de Keran qui produit cela.
Puisque comme précisé depuis le message#4
test OK sur Word et Excel 2013.

Au moins mon code t'aura permis d'incrémenter ton compteur de post à peu de frais...:rolleyes:
 

Discussions similaires

Haut Bas