Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Druckerauswahl anzeigen
12.10.2005 09:16:45
Mark
Hallo Leute
ich habe ein kleines Problem. Ich will per VBA eine Druckerauswahl angezeigt bekommen. Ich habe das auch schonmal gesehen bzw gemacht, aber ich krieg es einfach nicht mehr hin.
Ich will nicht den Dialog angezeigt bekommen, der kommt, wenn ich auf Datei/Drucken gehe. also nicht: Application.Dialogs(xlDialogPrint).Show
Es gibt doch auch noch eine andere Möglichkeit die Drucker auszuwählen oder irre ich mich jetzt total?
Danke für eure Hilfe
ciao Mark

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

Betreff
Datum
Anwender
Anzeige
AW: Druckerauswahl anzeigen
12.10.2005 09:20:32
Heiko
Hallo Mark,
suchst du sowas ?!

Private Sub CommandButton5_Click()
Dim strPrinterName As String
strPrinterName = Application.ActivePrinter
Application.Dialogs(xlDialogPrinterSetup).Show
' Hier den PrintOut befehl
ActiveSheet.PrintOut
Application.ActivePrinter = strPrinterName
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
AW: Druckerauswahl anzeigen
12.10.2005 09:48:16
Mark
Genau das meinte ich.
Vielen Dank
Mark
AW: Druckerauswahl anzeigen
12.10.2005 13:18:23
der.dan
Hallo.
Habe eben glücklicherweise den Beitrag gefunden und gleich mal in die Tat umgesetzt.
An und für sich funktioniert die Funktion auch so wie sie soll, nur habe ich dummerweise jetzt ein Problem: Wenn die Box zum auswählen des Druckers angezeigt wird und "Abbrechen" gedrückt wird, so wird trotzdem der Druckvorgang gestartet...
Jetzt hoffe ich mal wieder auf Hilfe...
Hier mal der Code:

Private Sub CommandButtonPRINT_click()
Dim strPinterName As String
strPrinterName = Application.ActivePrinter
Application.Dialogs(xlDialogPrinterSetup).Show
If Worksheets("Montag").Visible = True Then
Worksheets("Montag").PrintOut
End If
If Worksheets("Dienstag").Visible = True Then
Worksheets("Dienstag").PrintOut
End If
If Worksheets("Mittwoch").Visible = True Then
Worksheets("Mittwoch").PrintOut
End If
If Worksheets("Donnerstag").Visible = True Then
Worksheets("Donnerstag").PrintOut
End If
If Worksheets("Freitag").Visible = True Then
Worksheets("Freitag").PrintOut
End If
If Worksheets("Samstag").Visible = True Then
Worksheets("Samstag").PrintOut
End If
If Worksheets("Sonntag").Visible = True Then
Worksheets("Sonntag").PrintOut
End If
Application.ActivePrinter = strPrinterName
End Sub

mfg, Dan
Anzeige
Nachtrag
12.10.2005 14:51:11
der.dan
Habe noch eine Feststellung vergessen: Egal welchen Drucker in dann in der Dialogbox auswähle, gedruckt wird immer auf dem Standartdrucker...
Gruß, Dan
AW: Nachtrag
12.10.2005 15:26:42
Heiko
Hallo Dan,
dann halt so:

Sub Drucken1()
Dim strPrinterName As String
Dim varRueckgabe As Variant
strPrinterName = Application.ActivePrinter
varRueckgabe = Application.Dialogs(xlDialogPrinterSetup).Show
If varRueckgabe = "Falsch" Then Exit Sub
' Hier den PrintOut befehl
ActiveSheet.PrintOut
Application.ActivePrinter = strPrinterName
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Nachtrag
12.10.2005 15:45:47
der.dan
Hallo Heiko.
Danke für Deine Antwort. Habe sie selbstverständlich direkt in die Tat umgesetzt. Und siehe da: Es funktioniert! :-)
Womit das Problem eigentlich gelöst wäre... Wenn sich hieraus nicht noch eine neue Frage entwickelt hätte: Ich habe hier vier Drucker eingerichtet - einer davon zum erstellen von *.pdf-Dokumenten. Wenn ich nun mittels VBA drucke, erhalte ich pro aktivem (=angezeigtem) Blatt einen einzelnen Druckauftrag, und somit auch entsprechend viele pdfs...
Schön wäre es jedoch, alle Seiten fortlaufend zu erhalten, was bedeuten würde, dass nicht pro Blatt ein Druckauftrag angestoßen wird, sondern insgesamt nur ein einziger Auftrag gestartet wird.
Vielleicht fällt Dir ja hierzu auch noch eine Lösung ein.
Der Vollständigkeit halber hier der aktuelle, funktionierende Code:

Private Sub CommandButtonPRINT_click()
Dim strPinterName As String
Dim varRueckgabe As Variant
strPrinterName = Application.ActivePrinter
varRueckgabe = Application.Dialogs(xlDialogPrinterSetup).Show
If varRueckgabe = "Falsch" Then Exit Sub
Application.ScreenUpdating = False
If Worksheets("Montag").Visible = True Then
Worksheets("Montag").PrintOut
End If
If Worksheets("Dienstag").Visible = True Then
Worksheets("Dienstag").PrintOut
End If
If Worksheets("Mittwoch").Visible = True Then
Worksheets("Mittwoch").PrintOut
End If
If Worksheets("Donnerstag").Visible = True Then
Worksheets("Donnerstag").PrintOut
End If
If Worksheets("Freitag").Visible = True Then
Worksheets("Freitag").PrintOut
End If
If Worksheets("Samstag").Visible = True Then
Worksheets("Samstag").PrintOut
End If
If Worksheets("Sonntag").Visible = True Then
Worksheets("Sonntag").PrintOut
End If
Application.ScreenUpdating = True
Application.ActivePrinter = strPrinterName
End Sub

Gruß, Dan
Anzeige
AW: Nachtrag
13.10.2005 07:37:01
Heiko
Moin Dan,
versuche es mal nach diesem Motto, da ich aber keine PDF Writer habe kann ich es nicht testen aber normal drucken tut er so schon mal.

Sub Makro1()
Dim wksSheets() As String
Dim intcounter As Integer
intcounter = 0
If Worksheets("Tabelle1").Visible = True Then
ReDim Preserve wksSheets(intcounter)
wksSheets(intcounter) = "Tabelle1"
intcounter = intcounter + 1
End If
If Worksheets("Tabelle2").Visible = True Then
ReDim Preserve wksSheets(intcounter)
wksSheets(intcounter) = "Tabelle2"
intcounter = intcounter + 1
End If
If Worksheets("Tabelle3").Visible = True Then
ReDim Preserve wksSheets(intcounter)
wksSheets(intcounter) = "Tabelle3"
intcounter = intcounter + 1
End If
' Und so weiter bis Tabelle 7 (bzw. Sonntag)
Sheets(wksSheets).PrintOut
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Nachtrag
14.10.2005 07:32:35
der.dan
Guten Morgen Heiko.
Spitze! Jetzt klappt das auch. Ist nur irgendwie ein wenig langsam... Hm...
Egal - Geschwindigkeit kommt später, hauptsache das funktioniert erstmal!
Also: Vielen Dank für Deine Hilfe und einen geruhsamen Freitag.
Gruß, Dan

9 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige