mttg18
Goto Top

XLSX Dateien per VBScript automatisch drucken

Hallo zusammen,

wir möchten gerne alle Excel Dateien aus einem Netzwerkordner per VB Script ausdrucken lassen:

Folgendes Script habe ich hier gefunden. Das Script druckt aber immer nur die aktuellste Datei aus.

Wie müsste das Script aussehen, das alle *.XLS Datei aus dem "MyPath" Ordner ausgedruckt werden?

Vielen Dank im Voraus für eure Hilfe.

MyPath= "\\Server\Plaene\"  

Set fso = CreateObject("Scripting.FileSystemObject")  
Set folder = fso.GetFolder(MyPath)

for each file in folder.Files
filedate = file.datelastmodified
if filedate > predate then
Dateiname=file.path
predate=filedate
end if
next

Set appXLS = CreateObject("Excel.Application")  
Set wbkXLS = appXLS.Workbooks.Open(Dateiname,,True)

wbkXLS.sheets("Tabelle1").PrintOut  
wbkXLS.Close

Content-Key: 391914

Url: https://administrator.de/contentid/391914

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: 137443
Lösung 137443 07.11.2018 aktualisiert um 14:18:21 Uhr
Goto Top
Dim excel, fso, file
' Konstanten anpassen!  
Const PRINTERNAME = "HP Laserjet XYZ"  
Const FOLDERNAME = "\\SERVER\PLAENE"  
'Objekte erzeugen  
Set fso = CreateObject("Scripting.FileSystemObject")  
set excel = CreateObject("Excel.Application")  
'Excel sichtbar machen (muss man nicht ist nur für den Test)  
excel.visible = True
'Dialoge unterdrücken  
excel.DisplayAlerts = False
'Für jede XLSX  
For Each file In fso.GetFolder(FOLDERNAME).Files
  If LCase(fso.GetExtensionName(file.Name)) = "xlsx" Then   
       ' Datei öffnen  
	With excel.workbooks.Open(file.Path, false, true)
    	        'gewünschtes Worksheet auf angegebenem Drucker drucken  
		.Worksheets(1).PrintOut ,,,,PRINTERNAME
    	        'Workbook wieder schließen  
		.Close False
	End With
  End If
Next
'Warnmeldungen wieder aktivieren und Excel schließen  
excel.DisplayAlerts = True
excel.Quit
'Objekte releasen  
Set excel = Nothing
Set fso = Nothing 
Gruß l.
Mitglied: mttg18
mttg18 07.11.2018 um 14:12:48 Uhr
Goto Top
Hallo lummel,

perfekt! Genau dies habe ich gesucht face-wink

Eine Frage noch: Ich möchte die Dateien schreibgeschützt öffnen -> ReadOnly:=True

With excel.workbooks.Open(file.Path), ReadOnly:=True

Leider klappt dies nicht so ganz. Es kommt die Fehlermeldung Zeile 16, Zeichen 38, Fehler: Anweisung erwartet.

Jemand eine Idee?
Mitglied: 137443
137443 07.11.2018 aktualisiert um 14:20:16 Uhr
Goto Top
Benannte Parameter gibt's in VBS nicht da musst du die Parameter der Reihe nach wie in der Doku beschrieben angeben
https://msdn.microsoft.com/de-de/vba/excel-vba/articles/workbooks-open-m ...
Zitat von @mttg18:

Eine Frage noch: Ich möchte die Dateien schreibgeschützt öffnen -> ReadOnly:=True
Oben hinzugefügt.