Bonjour à tous,
Je suis plus que débutante sur VBA, partez du principe que je n'y connais rien…
Cela fait presque une journée que je cherche une solution à mon problème sur tous types de forums alors que je suis presque sûre que la solution est toute bête (quand on connait).
L'idée de base : j'ai un document Word modèle rempli de signets et je veux une macro dans Excel qui me génère directement ce modèle Word rempli avec les bonnes infos.
Tout marchait très bien jusqu'à ce qu'Excel me dise que la macro était trop grande et là je n'arrive pas à la couper… j'ai essayé plein de choses trouvées sur des forum mais comme j'y connais rien je l'ai probablement mal exécuté…
Voici la macro :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Sub Generer_PI_ESP()
Dim NDF As String, NDF2 As String
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
NDF = ActiveWorkbook.Path & "\plan d'inspection récipient.docx"
NDF2 = Sheets("Générer un PI ESP").Range("M3").Text & "\" & "D5370PIE" & Sheets("Générer un PI ESP").Range("D2").Text & ".doc"
On Error Resume Next
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(NDF, ReadOnly:=False)
With WordApp
.Visible = True
.Activate
WordApp.ActiveDocument.Bookmarks("REC").Range.Text = UCase(Sheets("Générer un PI ESP").Range("D2").Value)
WordApp.ActiveDocument.Bookmarks("Fonc").Range.Text = UCase(Sheets("Générer un PI ESP").Range("D6").Value)
WordApp.ActiveDocument.Bookmarks("RF_PI").Range.Text = UCase(Sheets("Générer un PI ESP").Range("D3").Value)
WordApp.ActiveDocument.Bookmarks("Ind_PI").Range.Text = UCase(Sheets("Générer un PI ESP").Range("D4").Value)
WordApp.ActiveDocument.Bookmarks("Red").Range.Text = Sheets("Générer un PI ESP").Range("F3").Value |
[à peu près 478 lignes de ce type…]
1 2 3 4 5 6 7 8 9 10
| End With
WordDoc.Application.ActiveDocument.SaveAs NDF2
Set WordDoc = Nothing
Set WordApp = Nothing
ActiveWorkbook.Close SaveChanges:=Nothing
End Sub |
Si quelqu'un peut m'aider, tout mon service en sera reconnaissant !
Partager