J'utilise le code ci-dessous pour insérer un numéro à partir d'un fichier .txt, "enregistrer sous" le fichier texte en utilisant ce numéro comme nom, puis effectuer une opération de fusion et publipostage.Pourquoi ne puis-je pas enregistrer un fichier dans un endroit spécifique?
Le code a bien fonctionné jusqu'à ce que je devais changer d'ordinateur, donc les emplacements de fichiers ont changé ... J'ai évidemment changé les emplacements pour qu'ils correspondent à ceux du nouvel ordinateur.
Maintenant, le numéro est inséré au bon endroit, puis la boîte de dialogue de sauvegarde s'ouvre mais ne le place pas au bon endroit et n'insère pas le numéro spécifié.
Il essaie de sauver ici, peu importe ce que je change le chemin du fichier à être: C: \ Users \ Schlechter Ag Liquid \ onedrive \ BOLTemplate \
Sub CommandButton1_Click()
Invoice = System.PrivateProfileString("C:\Users\Schlechter Ag Liquid\OneDrive\BOLTemplate\" & _
"invoice-number.txt", "InvoiceNumber", "Invoice")
If Invoice = "" Then
Invoice = 1
Else
Invoice = Invoice + 1
End If
System.PrivateProfileString("C:\Users\Schlechter Ag Liquid\OneDrive\BOLTemplate\" & _
"invoice-number.txt", "InvoiceNumber", "Invoice") = Invoice
' Insert the number in the document
ActiveDocument.Bookmarks("Invoicenan").Range.InsertBefore Format(Invoice, "")
ActiveDocument.SaveAs FileName:= _
"C:\Users\Schlechter Ag Liquid\OneDrive\BOLs\" & Format(Invoice, "") & ".docx"
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Users\Schlechter Ag Liquid\OneDrive\BOLTemplate\Customer Database.accdb" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\Schlechter Ag Liquid\OneDrive\BOLTemplate\Customer Database.accdb;Mode=Read;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=6;Jet OLE" _
, SQLStatement:="SELECT * FROM `report1 (1)`", SQLStatement1:="", SubType _
:=wdMergeSubTypeAccess
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
WordBasic.MailMergeFindEntry
End Sub
Il dit que l'erreur est dans ce ligne, mais je n'arrive pas à comprendre ce qui ne va pas avec.
ActiveDocument.SaveAs FileName:= _
"C:\Users\Schlechter Ag Liquid\OneDrive\BOLs\" & Format(Invoice, "") & ".docx"
Toute aide serait grandement appréciée.
Pouvez-vous enregistrer manuellement à cet endroit à partir de Word? – DeanOC
Vous dites "... ne le place pas au bon endroit ..." - le sauvegarde-t-il n'importe où? si oui, quel est le chemin complet? La syntaxe de la sauvegarde est correcte. –
Aviez-vous déjà des espaces dans le nom de fichier? Je ne suis pas sûr si VBA gère correctement les espaces dans le chemin. Peut-être que vous pourriez essayer "" "C: \ Utilisateurs \ Schlechter Ag Liquid \ OneDrive \ BOLs \" & Format (Facture, "") & ".docx" "" '? –