Willst Du mich veräppeln ?
NoNet
Hallo Tom,
ich gewinne so langsam den Eindruck, Du willst "Katz und Maus" spielen ?
Woher soll ich denn wissen, WAS Du möchtest, wenn Du es nicht genau beschreibst ?
Erst schreibst Du, es soll exakt der markierte Zellbereich (
Hinweis: das kann auch nur eine EINZELNE Zelle sein !) gedruckt werden und nun möchtest Du ALLES drucken wenn nur eine Zelle markiert ist ! Das hattest Du nicht erwähnt !
Oder möchtest Du nur Ramses als Hellseher bestätigen :
https://www.herber.de/forum/archiv/1120to1124/t1122758.htm#1122779
Und dass Du das (offenbar) nicht selbst lösen kannst, ist ein weiteres Indiz dafür, dass "VBA gut" sehr hoch gepokert war - hier die Lösung (oder hast Du noch ein paar bislang nicht erwähnte Extrawünsche ?) :
Public bolDrucken As Boolean
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim strDruckbereich As String
strDruckbereich = ActiveSheet.PageSetup.PrintArea
If TypeName(Selection) = "Range" Then
If Selection.Cells.Count = 1 Then
ActiveSheet.PageSetup.PrintArea = "" 'alles drucken
Else
ActiveSheet.PageSetup.PrintArea = Selection.Address
End If
Else
ActiveSheet.PageSetup.PrintArea = "" 'alles drucken
End If
If Not bolDrucken Then Cancel = True
bolDrucken = Not bolDrucken
ActiveSheet.PrintOut
ActiveSheet.PageSetup.PrintArea = strDruckbereich
End Sub
Dass sich nun der Menüpunkt "Datei - Drucken" nicht mehr öffnen lässt, liegt daran, dass dabei exakt das gleiche Ereignis ausgelöst wird wie beim "Drucken"-Icon. Das lässt sich auch nicht verhindern/unterscheiden !
Alternative : Verwende für den automatischen Druck ein eigenes DRUCKEN-Icon und weise diesem den Code zu !
Gruß, NoNet