Mon code fonctionne lorsqu'il est exécuté à partir du modèle "ouvert" (par exemple Template.dotm) mais pas lorsque j'utilise "new" à partir du modèle "(par exemple, Document1.docx).VBA: erreur d'exécution '91' (code fonctionnant dans le modèle mais pas "nouveau à partir du modèle")
Lorsqu'il est exécuté à partir du code d'erreur "Document1" invites:
"Erreur d'exécution '91' Variable objet ou variable bloc fixe pas"
Debugger souligne:
Unité Selection.MoveDown: = wdLine, nombre: = 129
Mon code dans Microsoft Word Obejcts/Ce document:
Ouvre UserForm1 lors de nouveau document à partir du modèle:
Private Sub Document_New()
Userform1.Show
End Sub
code dans UserForm1
ÉDITÉE Maintenant "erreur d'exécution '438' Objet ne supp. propriété ou méthode. »
Si CheckBox1 = True il ouvre text.docx et colle son contenu dans la ligne 129 de ce document
Private Sub CommandButton1_Click()
Dim Newdocument As Document
Set NewDocument = ThisDocument
Dim myDoc As Document
Set myDoc = Documents.Open(FileName:="C:\Users\Stack\Documents\Text.docx", ReadOnly:=False)
' do some stuff
'Opens text document and pastes it in line 129 of this document
If CheckBox1 = True Then
myDoc.WholeStory
myDoc.Copy
Newdocument.Activate
Selection.MoveDown Unit:=wdLine, Count:=129
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Application.DisplayAlerts = False
myDoc.Close
End If
Unload Me
Exit Sub
End Sub
I probably seem clueless in your eyes, but i am new to VBA and still learning. Debugger now highlights the "mydoc.wholestory" with error '438'
n'utilisez pas 'Selection'. selon @braX, définissez un objet et utilisez 'myDoc.WholeStory'. ... définit également un objet pour ThisDocument, définissez-le avant myDoc. ... n'utilisez pas non plus copier/coller pour insérer le texte – jsotola
Le problème est que je ne sais pas comment définir ce document car il n'a pas encore été enregistré lors de sa création à partir d'un modèle. J'ai modifié mon post original avec le vôtre et les commentaires @brax pris en considération. :) – OverflowNoob