Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
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

Zwei Makros mögen sich nicht (Druck)

Zwei Makros mögen sich nicht (Druck)
31.07.2015 10:11:04
Juergen
Hallo,
ich habe 2 wunderbar funktionierende Makros.
1. Vor jedem Druck sollen alle "j"s und "ls" gelöscht werden (in "DieseArbeitsmappe")

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1:O150").Replace "j", "", lookat:=xlWhole, MatchCase:=False
ws.Range("A1:O150").Replace "l", "", lookat:=xlWhole, MatchCase:=False
Next ws
End Sub

2. Definition des Ausdruck-Bereichs (das habe ich individuell für 30 Arbeitsblätter) - (in " _ Modul 1")

Sub Druck_BAB()
Range("B2:J27").Select
Selection.PrintOut Copies:=1, Collate:=True
End Sub

Jedes für sich funktioniert einwandfrei. In Kombination (bei Druckbefehl über das 2. Makro) aber bekomme ich für das 1. Makro immer einen Fehler . Kann mir da einer einen heißen Tipp geben?
Jürgen

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwei Makros mögen sich nicht (Druck)
31.07.2015 16:05:06
Michael
Hi Jürgen,
man sollte meinen, daß printout nach der Aktion von beforeprint nicht mehr weiß, auf welches Tabellenblatt sich der zuvor angegebene Range bezieht (wobei denn auch nicht mehr der angegebene Range selektiert ist, sondern die Fundstelle der letzten Ersetzung).
Macht es wirklich Sinn, bei jedem einzelnen Druckauftrag jeweils *alle* Tabellenblätter zu durchsuchen?
Wenn man das braucht, könnte man es auf extra aufrufen (anstatt an beforeprint zu koppeln), und die Funktion für das gerade aktive Tabellenblatt in die Druckfunktion integrieren, also etwa so:
Private Sub Ersetzen()       ' in einem Modul, Aufruf per button oder so
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1:O150").Replace "j", "", lookat:=xlWhole, MatchCase:=False
ws.Range("A1:O150").Replace "l", "", lookat:=xlWhole, MatchCase:=False
Next ws
End Sub 

Sub Druck_BAB()
Range("A1:O150").Replace "j", "", lookat:=xlWhole, MatchCase:=False
Range("A1:O150").Replace "l", "", lookat:=xlWhole, MatchCase:=False
Range("B2:J27").Select
Selection.PrintOut Copies:=1, Collate:=True
End Sub
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige