XL 2013 VBA : Erreur 1004

clarouche33

XLDnaute Nouveau
Bonjour !

Je fais une macro sur excel afin de copier des valeurs contenues dans ma feuille "M19" de mon classeur PACKE_Test.xlsm, dans les signets correspondants de mon docuement word PACKW_Test.docm contenu dans le meme dossier. Le but ensuite est d'enregistrer un nouveau word avec les signets remplis sous le nom PACKW_Test19.doc
J'avais fait l'essai de mon code sur deux fichiers plus petits (mais sur le meme principe) et celui ci fonctionnait parfaitement.
Avec ces fichiers-ci, les signets du word se complétent tous mais j'ai une "Erreur 1004 : la méthode Range de l'objet Worksheet a échoué" au niveau de ma ligne de code remplissant les signets, et le code s'arrêtant, mon nouveau word ne s'enregistre pas.
Savez vous comment je peux procéder ?
Merci !

ci joint mon code :
VB:
Sub Remplir_Pack()

    Dim wsX As Worksheet

    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
    Dim FichierWord As String

    FichierWord = "P:\SDPL\SLF\Logement Social\BEPPS\Clara\PACKW_Test.docm"
        
    Set WordDoc = WordApp.Documents.Open(FichierWord)
    Dim BM As Word.Bookmark
    Dim repertoire As String
    Dim DocName As String

    Set wsX = ThisWorkbook.Worksheets("M19")

' Remplir Signet :
        For Each BM In WordDoc.Bookmarks
            BM.Range.Text = wsX.Range(BM.Name).Text 'ICI : ERREUR 1004' 
        Next BM


'Enregistrer nouveau fichier Word

    repertoire = ThisWorkbook.Path
    repertoire = repertoire & "\"

    DocName = "Pack_Test19.doc"
    WordDoc.SaveAs Filename:=repertoire & DocName

End Sub
 
Solution
Bonjour,
Il est probable qu'un signet de word n'existe pas en tant que nom dans la feuille M19 .
Vous pouvez le prévoir (et vérifier) dans le code :
VB:
'
' Remplir Signet :
        On Error GoTo Err_BookMarks
            For Each BM In WordDoc.Bookmarks
                BM.Range.Text = wsX.Range(BM.Name).Text 'ICI : ERREUR 1004'
            Next BM
        On Error GoTo 0

'Enregistrer nouveau fichier Word

'    repertoire = ThisWorkbook.Path
'    repertoire = repertoire & "\"
'
'    DocName = "Pack_Test19.doc"
'    WordDoc.SaveAs Filename:=repertoire & DocName
    
    Exit Sub
    
Err_BookMarks:
    Debug.Print Err, Err.Description
    Debug.Print "BookMark=" & BM.Name
    Resume Next

End Sub

fanch55

XLDnaute Barbatruc
Bonjour,
Il est probable qu'un signet de word n'existe pas en tant que nom dans la feuille M19 .
Vous pouvez le prévoir (et vérifier) dans le code :
VB:
'
' Remplir Signet :
        On Error GoTo Err_BookMarks
            For Each BM In WordDoc.Bookmarks
                BM.Range.Text = wsX.Range(BM.Name).Text 'ICI : ERREUR 1004'
            Next BM
        On Error GoTo 0

'Enregistrer nouveau fichier Word

'    repertoire = ThisWorkbook.Path
'    repertoire = repertoire & "\"
'
'    DocName = "Pack_Test19.doc"
'    WordDoc.SaveAs Filename:=repertoire & DocName
    
    Exit Sub
    
Err_BookMarks:
    Debug.Print Err, Err.Description
    Debug.Print "BookMark=" & BM.Name
    Resume Next

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 738
Messages
2 112 335
Membres
111 512
dernier inscrit
Gilles727