ich habe in einem Excel-Sheet (Spalte A) Word-Dokumente aufgelistet.
Diese Liste wechselt ständig.
Kann man mittels eines VBA-Scriptes all diese Dokumente drucken.
Danke für Antwort
Markus
Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub Word_Drucken()
Dim wksBlatt As Worksheet
Dim strDatei As String
Dim lngAnzahl As Long
Dim lngZeile As Long
Set wksBlatt = ThisWorkbook.Worksheets("Tabelle1")
With wksBlatt
lngZeile = IIf(IsEmpty(.Range("A65536")), .Range("A65536").End(xlUp).Row, 65536)
End With
For lngAnzahl = 1 To lngZeile
strDatei = wksBlatt.Cells(lngAnzahl, 1).Text
ShellExecute 0, "Print", strDatei, "", "", 2
Next lngAnzahl
Set wksBlatt = Nothing
End Sub
Mehr Informationen dazu auch hier:
http://support.microsoft.com/kb/170918/de
Und hier:
http://www.vbarchiv.net/vbapi/ShellExecute.php
Vorgabe für das obige Makro:
Name der Tabelle - Tabelle1
Namen ab Zelle A1
In der Form "C:\Temp\Test.doc"
Wenn Du den Pfad nicht in der Zelle stehen hast, dann musst Du den noch mit übergeben.
Servus
Case
Option Explicit
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Public Sub Word_Drucken()
Dim wksBlatt As Worksheet
Dim strDatei As String
Dim lngAnzahl As Long
Dim lngZeile As Long
Set wksBlatt = ThisWorkbook.Worksheets("Tabelle1")
With wksBlatt
lngZeile = IIf(IsEmpty(.Range("A65536")), .Range("A65536").End(xlUp).Row, 65536)
End With
For lngAnzahl = 1 To lngZeile
strDatei = wksBlatt.Cells(lngAnzahl, 1).Text
ShellExecute 0, "Print", strDatei, "", "", 2
Next lngAnzahl
Set wksBlatt = Nothing
End Sub