web-dev-qa-db-fra.com

Comment puis-je imprimer 20 documents de mots individuels à la fois?

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?

7
engineerchuan

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é.

enter image description here

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.)

enter image description here

9
Scott Chamberlain

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.

3
Dane

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.

2
Daniel

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
1
ahmed