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