J'ai besoin d'imprimer 20 documents de mot individuels. Je ne veux pas ouvrir chacun et cliquez sur Imprimer.
Puis-je imprimer en quelque sorte tout à la fois?
Sous Windows, vous pouvez sélectionner plusieurs fichiers avec le bouton droit de la souris sur et choisir Imprimer et imprimera tout ce que vous avez sélectionné.
cependant, avec mes tests, cela ne fonctionne qu'avec jusqu'à 15 documents à la fois (je suppose qu'il est d'empêcher une catastrophe accidentelle en imprimant le mauvais dossier.)
Je pense que cela est plus qu'un simple temps (sinon, vous pouvez utiliser l'interface utilisateur Windows pour sélectionner plusieurs documents, cliquez avec le bouton droit de la souris et choisissez Imprimer).
Une macro serait-elle acceptable? Voici le code de base nécessaire pour ouvrir et imprimer un mot Doc d'une macro:
Sub PrintDocMacro()
Dim objWord As Object
Set objWord = CreateObject("Word.application") 'Start app
objWord.Documents.Open FileName:="c:\Temp\test.docx" 'Open doc
objWord.Visible = True
objWord.Application.PrintOut 'Print doc
objWord.ActiveDocument.Close savechanges:=True 'close & save doc
objWord.Application.Quit 'Close app
Set objWord = Nothing
End Sub
Nous devrions écrire une boucle pour imprimer tous les documents que vous voulez. Si les documents que vous souhaitez imprimer sont tous les documents dans un dossier donné, nous pourrions le faire aussi. Microsoft a exemple code pour la lecture d'un répertoire.
Si vous souhaitez imprimer celles-ci sur un calendrier pour une raison quelconque, je suppose que vous pouvez créer le fichier contenant la macro-exécuté avec AutoOuten et même fermer lors de l'ouverture du fichier macro-activé via le planificateur de tâches.
Je me rends compte que c'est une vieille question, mais je n'ai pas vu la réponse que j'utilise ici.
Vous pouvez utiliser l'option de clic droit à partir du shell de l'Explorateur Windows pour imprimer plusieurs documents. Normalement, cela a une limite de document 15; Cependant, cette limite peut être modifiée dans le registre . Voici la valeur à modifier à votre limite requise:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
Name : MultipleInvokePromptMinimum
Type : DWORD
Default : 15 (decimal)
J'espère que cela sauve une personne la peine d'utiliser une macro.
Ceci est une macro qui vous permet de spécifier un dossier et imprimera tous les fichiers Word à l'intérieur de ce dossier, y compris les sous-dossiers.
Public optionCancel
Sub Print_Word_files()
Dim path
Dim reminder As Integer
Dim oExtension As String
Dim Fso, oFolder, oSubfolder, oFile, queue As Collection
On Error Resume Next
path = " " //######################put files path here (ex: c:\users\myFiles) ################
If optionCancel = "yes" Then
optionCancel = "No"
Exit Sub
End If
reminder = MsgBox("Are you sure you want to print these files?", 4, "WARNING !!")
If reminder = 6 Then 'If Yes is clicked
Set Fso = CreateObject("Scripting.FileSystemObject")
Set queue = New Collection
queue.Add Fso.GetFolder(path) 'The path
Do While queue.Count > 0
Set oFolder = queue(1)
queue.Remove 1 'dequeue
'...insert any <<folder>> processing code here...
For Each oSubfolder In oFolder.subfolders
queue.Add oSubfolder 'enqueue
Next oSubfolder
For Each oFile In oFolder.Files
oExtension = Right(oFile, Len(oFile) - InStrRev(oFile, ".", -1)) 'gets the file extension
If oExtension = "docx" Or oExtension = "DOCX" Or oExtension = "doc" Or oExtension = "DOC" Or oExtension = "docm" Or oExtension = "DOCM" Or oExtension = "rtf" Or oExtension = "RTF" Then
Documents.Open FileName:=(oFile)
'-------------------The required starts here
ActiveDocument.PrintOut 'Prints document
ActiveDocument.Saved = True 'to prevent asking to save
ActiveDocument.Close 'Closes document
'-------------------The required ends here
End If
Next oFile
Loop
Else
MsgBox ("Operation cancelled!!")
End If
End Sub