Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1324to1328
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateien aus msoFileDialogOpen drucken

Dateien aus msoFileDialogOpen drucken
30.07.2013 12:49:54
Chris
Hallo zusammen!
habe leider nix passendes zu dem Thema gefunden.
Ich habe in einem Makro folgenden Code stehen, um nach dem Klick auf einen Button ein _
Dateiauswahlfenster zu öffnen und im Anschluss die ausgewählten Dateien an eine Mail anzuhängen (nur ein Auszug, vor diesem Codeteil steht natürlich noch mehr...):

MsgBox ("Bitte Dateien auswählen.")
Set fdOpen = Application.FileDialog(msoFileDialogOpen)
With fdOpen
.AllowMultiSelect = True
.InitialView = msoFileDialogViewList
.InitialFileName = ActiveWorkbook.path
.Title = "Bitte die zu sendende(n) Datei(en) auswählen!"
.ButtonName = "per E-Mail senden"
If .Show = True Then
Dim i As Integer
If .SelectedItems.Count > 0 Then
For i = 1 To .SelectedItems.Count
Mail.attachments.Add .SelectedItems(i)
Next
End If
End If
End With
Mail.Display

Ich möchte nun ein weiteres Makro schreiben, bei welchem sich genau wie oben ein Dateiauswahlfenster öffnet, in dem ich mehrere Dateien auswählen kann und die ausgewählten Dateien im Anschluss dann gedruckt werden.
Habe statt der Zeile
Mail.attachments.Add .SelectedItems(i)
schon einige Print-Befehle ausprobiert (absolut frei Schnauze, da ich mit den Befehlen nicht so vertraut bin) aber nix hat funktioniert (was zu erwarten war...).
Kann mir jemand auf die Sprünge helfen?
Danke :)

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien aus msoFileDialogOpen drucken
30.07.2013 13:20:26
Rudi
Hallo,
alle Blätter drucken?
  Dim wkb As Workbook, wks As Worksheet
Dim i As Integer
MsgBox ("Bitte Dateien auswählen.")
Set fdOpen = Application.FileDialog(msoFileDialogOpen)
With fdOpen
.AllowMultiSelect = True
.InitialView = msoFileDialogViewList
.InitialFileName = ActiveWorkbook.Path
.Title = "Bitte die zu sendende(n) Datei(en) auswählen!"
.ButtonName = "per E-Mail senden"
If .Show = True Then
If .SelectedItems.Count > 0 Then
For i = 1 To .SelectedItems.Count
Set wkb = Workbooks.Open(.SelectedItems(i))
For Each wks In wkb.Worksheets
wks.PrintOut
Next
wkb.Close False
Next
End If
End If
End With

Gruß
Rudi

Anzeige
AW: Dateien aus msoFileDialogOpen drucken
30.07.2013 13:45:34
Chris
Sehr toll!!
Funktioniert einwandfrei.
Ein Application.ScreenUpdating = False macht das ganze noch ein bisschen weniger unruhig :D
Problem nur: es sollen nicht nur Excel-Sheets gedruckt werden sondern auch ein PDF-File :/ ist das auch möglich?

AW: Dateien aus msoFileDialogOpen drucken
30.07.2013 14:01:17
Rudi
Hallo,
probier mal:
 Private Declare Function ShellExecuteA Lib "shell32.dll" ( _
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 Drucken(strFile)
ShellExec strFile, , "print"
End Sub
Sub chris()
Dim wkb As Workbook, wks As Worksheet
Dim i As Integer
MsgBox ("Bitte Dateien auswählen.")
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.InitialView = msoFileDialogViewList
.InitialFileName = ActiveWorkbook.Path
.Title = "Bitte die zu sendende(n) Datei(en) auswählen!"
.ButtonName = "per E-Mail senden"
If .Show = True Then
If .SelectedItems.Count > 0 Then
For i = 1 To .SelectedItems.Count
If Right(.SelectedItems(i), 4) = ".pdf" Then
Drucken .SelectedItems(i)
Else
Set wkb = Workbooks.Open(.SelectedItems(i))
For Each wks In wkb.Worksheets
wks.PrintOut
Next
wkb.Close False
End If
Next
End If
End If
End With
End Sub

Gruß
Rudi

Anzeige
AW: Dateien aus msoFileDialogOpen drucken
30.07.2013 14:09:30
Chris
Ich versuche gar nicht erst nachzuvollziehen was da geschieht :D
Er bringt allerdings eine Fehlermeldung:
Sub Drucken(strFile)
ShellExec strFile, , "print"
End Sub
Fehler beim Kompilieren:
Sub oder Function nicht definiert

Vielen Dank ;)

AW: Dateien aus msoFileDialogOpen drucken
30.07.2013 15:16:06
Rudi
hallo,
versuchs mal mit
Sub Drucken(strFile)
ShellExecuteA strFile, , "print"
End Sub

AW: Dateien aus msoFileDialogOpen drucken
30.07.2013 15:24:56
Chris
Danke, jetzt kommt zumindest mal eine andere Fehlermeldung :)
Fehler beim Kompilieren:
Argument ist nicht optional

Anzeige
AW: Dateien aus msoFileDialogOpen drucken
02.08.2013 08:25:07
Chris
Hallo :)
Kann mir einer sagen, woran es noch scheitert? :/
Danke!!

AW: Dateien aus msoFileDialogOpen drucken
06.08.2013 12:59:14
Chris

Option Explicit
Dim strfile As String
Private 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
Private Sub Print()
Dim wkb As Workbook, wks As Worksheet
Dim i As Integer
MsgBox ("Bitte zustäzlich zu druckende Dateien auswählen.")
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.InitialView = msoFileDialogViewList
.InitialFileName = ActiveWorkbook.path
.Title = "Bitte die zu druckende(n) Datei(en) auswählen!"
.ButtonName = "Drucken"
If .Show = True Then
If .SelectedItems.Count > 0 Then
For i = 1 To .SelectedItems.Count
If Right(.SelectedItems(i), 4) = ".pdf" Then
Drucken .SelectedItems(i)
Application.Wait (Now + TimeValue("0:00:10"))
Call AcroReaderBeenden
Else
Set wkb = Workbooks.Open(.SelectedItems(i))
For Each wks In wkb.Worksheets
wks.PrintOut
Next
wkb.Close False
End If
Next
End If
End If
End With
End Sub
So hat es funktioniert.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige