Anzeige
Archiv - Navigation
1296to1300
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

Druckbereich per Checkbox auswählen

Druckbereich per Checkbox auswählen
27.01.2013 17:27:51
hans.hansen
Hallo,
für meine Rechnungsvorlage findet sich auf einem Taballenblatt die Abschnitte Rechnung, Lieferschein und Zahlungserinnerung. Jeder Abschnitt entspricht einer Seite, d.h.
Rechnung = Seite 1
Lieferschein = Seite 2
Zahlungserinnerung = Seite 3
Über einen Button starte ich ich die Druckprozedur bzw. die Umwandlung in pdf (Ghostskript).
Was ich jetzt gerne machen würde:
Aus checkboxen wird übergeben kann, welche Seite(n) ich gerne drucken möchte. Die jeweiligen Seiten z.B. Seite 1 UND 3 (=Rechnung UND Zahlungserinnerung) werden dann gedruckt/ als pdf gespeichert. Die folgende Grafik soll veranschaulichen wie es aussehen soll: Userbild
Über verschiedene Foren bin ich auf folgenden Ansatz gestossen, wobei ich leider Null- _ Kenntnisse von VBA habe :(

Sub Drucken_1_1()
Dim Seite As Variant
If MsgBox("Drucken?", vbYesNo, "Drucken") = vbYes Then
Do
Seite = InputBox("Welche Seite ", "Drucken", 1)
If StrPtr(Seite) = 0 Then Exit Sub
If IsNumeric(Seite) Then Exit Do
MsgBox "Bitte eine Zahl eingeben!", vbExclamation, "Hinweis"
Loop
ActiveSheet.PrintOut From:=CLng(Seite), To:=CLng(Seite), Copies:=1
End If
End Sub

Besten Dank für Eure Hilfe :-)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckbereich per Checkbox auswählen
27.01.2013 21:46:33
Dirk
Hallo Hans,
du solltest dir gedanken darüber machen, wie du die pdf erstellen willst.
unter 2007 und 2010 ist das alles etwas leichter, das pdf als standardformat hinterlegt ist.
bei 2003 musst du soweit ich weiß über einen Drucker arbeiten.
(Korigiert mich fals ich da falsch liege)
ich würd das ganze mit dem PDFCreator machen und da autospeicherung hinterlegen.
dann kann man uber Checkboxen abfragen welche seiten gedruckt werden sollen und gut ist.
so in der art z.B.
https://www.herber.de/bbs/user/83611.xls
Gruß
Dirk

Anzeige
AW: Druckbereich per Checkbox auswählen
01.02.2013 00:00:37
hans.hansen
Hallo Dirk,
Besten Dank!! Das ist genau so wie ich das wollte! :-)
Wie so oft fehlt nur noch eine Kleinigkeit zum perfekten Glück. Ich habe deinen Code etwas erweitert und zwar um die Funktion, dass nicht gesperrten Zellen (= manuelle Eingabe) eingefärbt sind, für den Druckvorgang "entfärbt" und danach wieder eingefärbt werden. Funktioniert auch soweit.
Du hast recht, in Versionen vor 2007 muss über den Drucker in pdf gewandelt werden. Ich mache das mit dem CutePDF Writer. Auch diese Anpassung hab ich mit etwas Glück hinbekommen, sodass als pdf gespeichert werden kann. Leider speichert er jede Seite einzeln ab und nicht als ein pdf. Also bei der Auswahl von Seite 1 (= Rechnung) UND Seite 2 (= Lieferschein), gibt es zwei Dokumente.
Perfekt wäre:
1. Die Möglichkeit auszuwählen, ob ich tatsächlich drucken möchte oder eben als pdf speichern (in meinem Fall über den "CutePDF Writer").
2. Das das fertige pdf in einem (1) Dokument gespeichert wird.
und als Sahnehäupchen,
3. dass wenn sich der Dialog "speichern" öffnet, der Speicher-Pfad vorgeben ist und Dokumentennamen sich aus den Zellen A1 und B2 und C3 zusammen setzt (nicht direkt abspeichern, den ggf. wird eben doch der Pfad/ Dokumentenname manuell angepasst).
Für jede Hilfe dazu bin ich sehr dankbar :-)))
Viele Grüße
Hans
Option Explicit
'Starten der Druckauswahl
Private Sub Cbabb_Click()
If Cbrechnung.Value = True Then MsgBox "an"
Me.Hide
End Sub

Private Sub CbDruck_Click()
'Entfernt die Einfärbung der nicht gesperrten Zellen
Application.FindFormat.Locked = False
Application.ReplaceFormat.Interior.ColorIndex = xlNone
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
'Auswahl der zu druckenden Seite(n)
Dim feh As Boolean
If Cbrechnung.Value = True Then feh = druck(1)
If CBLiefers.Value = True Then feh = druck(2)
If CBZahlung.Value = True Then feh = druck(3)
'Färbe alle nicht gesperrten Zellen ein
Application.FindFormat.Locked = False
With Application.ReplaceFormat.Interior
.ColorIndex = 37
.Pattern = xlSolid
End With
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
Me.Hide
End Sub
'Übergabe an den pdf-drucker
Private Function druck(seite As Integer) As Boolean
ActiveWindow.SelectedSheets.PrintOut From:=seite, To:=seite, Copies:=1, ActivePrinter:=" _
CutePDF Writer auf CPW2:", Collate:=True
druck = True
End Function

Private Sub CBLiefers_Click()
'Färbe alle nicht gesperrten Zellen ein
Application.FindFormat.Locked = False
With Application.ReplaceFormat.Interior
.ColorIndex = 37
.Pattern = xlSolid
End With
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End Sub

Private Sub Cbrechnung_Click()
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige