Hallo,
nach meinen bisherigen Erkenntnissen liegt es an mindestens einem der folgenden Buttons: "2X", "3X", "4X", "5X", "10X" und "12X"
Wenn Bspw. das Tabellenblatt "Aufkleber 1Tab." aus der irrtümlich geposteten Arbeitmappe in die zweite Arbeitsmappe kopiert wird, und anschließend nacheinander die grünen Buttons in die neue Tabelle kopiert werden, stellt man fest, dass spätestens bei drei Buttons das Fehlverhalten auftritt. Im neu kopierten Tabellenblatt muss vor dem Ausführen der Buttons erst der Code kopiert werden, andernfalls bleiben die Buttons funktionslos.
Noch eine Optimierungsempfehlung:
In den Tabellenblättern kann folgender Code eingesetzt werden:
Option Explicit
Private Sub CommandButton1_Click()
myPrintOut objSheet:=Me, Copies:=1
End Sub
Private Sub CommandButton2_Click()
myPrintOut objSheet:=Me, Copies:=2
End Sub
Private Sub CommandButton3_Click()
myPrintOut objSheet:=Me, Copies:=3
End Sub
Private Sub CommandButton4_Click()
myPrintOut objSheet:=Me, Copies:=4
End Sub
Private Sub CommandButton5_Click()
myPrintOut objSheet:=Me, Copies:=5
End Sub
Private Sub CommandButton7_Click()
myPrintOut objSheet:=Me, Copies:=10
End Sub
Private Sub CommandButton8_Click()
myPrintOut objSheet:=Me, Copies:=12
End Sub
Dieser Code kann in jeder Tabelle eingesetzt werden. Die Variable "Me" verweist jeweils auf das entsprechende Tabellenblatt. Daher braucht nicht der Name des Tabellenblattes nochmals im Code angegeben werden.
In dem Befehl myPrintOut wird der eigendlichen Druck-Befehl ausgeführt:
Option Explicit
Sub myPrintOut(objSheet As Worksheet, Optional Copies As Integer = 1)
Dim sDruckerAktuell As String
'Aktuellen Drucker merken
sDruckerAktuell = Application.ActivePrinter
Application.ActivePrinter = "RICOH Aficio MP 201 auf Ne00:"
objSheet.PrintOut Copies:=Copies, Collate:=True
Application.ActivePrinter = sDruckerAktuell
End Sub
Falls später der Druckername sich ändern sollte, braucht dieser nur hier einmal geändert werden.
Wenn der Druckername in mehreren Arbeitsmappen verwendet wird, kann dieser auch in eine Ini-Datei angegeben werden und mit PrivateProfileString ausgelesen werden. Bei einer Änderung brauchen nicht X-Arbeitsmappen angefasst, sondern nur eine INI-Datei abgeändert werden.
Leider kennt Excel den Befehl PrivateProfileString nicht. Dieser kann jedoch mit API zur Verfügung gestellt werden. Alles Weitere kann hier nachgelesen werden.
LG, Ben
|