Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Drucken sheets 2 stk

Drucken sheets 2 stk
03.11.2006 11:20:47
chris
Hallo liebe Forumsuser und excellisten,
ich komme nicht weiter.VBA gut aber trotzdem häng ich fest.
Ich habe eine Datei mit vielen Sheets.
Die namen der sheets beginnen entweder mit "r" oder mit "v"
jetzt soll wenn ein Sheet aktiv ist z.b "vdetet" und auf das druckersymbol geklickt wird dieses sheet gedruckt werden und eines "DAVOR".
wenn ein Sheet aktiv ist das mit dem buchstaben "r" beginnt wie z.b "rdtdtd"
soll dieses Sheet gedruckt werden und eines "DANACH"
wie schaffe ich das ? Bitte um Hilfe.
habe es schon versucht mit diesem Code aber das klappt nicht so wie ich es will.
Set aktsheet = ActiveSheet
'drucken
If Mid(aktsheet.Name, 1, 1) = "V" Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Worksheets(aktsheet.Index + 1).Select
Else
'erst Rückseite dann Vorderseite
Worksheets(aktsheet.Index - 1).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If
Danke für Eure Hilfe.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Drucken sheets 2 stk
03.11.2006 11:45:27
IngGi
Hallo Chris,
zwei Ungereimtheiten habe ich entdeckt. Deine Blattnamen fangen mit Kleinbuchstaben an, du prüftst aber auf "V" (Großschreibung!) am Anfang. Bei Blättern mit "V" am Anfang wird in deinem Code nur das aktive Blatt ausgedruckt, das nachfolgende fehlt und im anderen Fall wird nur das vorhergehende Blatt ausgedruckt, das aktive fehlt. Versuch's mal damit:


Sub test()
'drucken
If UCase(Mid(ActiveSheet.Name, 1, 1)) = "V" Then
   ActiveSheet.PrintOut copies:=1, collate:=True
   Sheets(ActiveSheet.Index + 1).PrintOut copies:=1, collate:=True
Else
   'erst Rückseite dann Vorderseite
   Sheets(ActiveSheet.Index - 1).PrintOut copies:=1, collate:=True
   ActiveSheet.PrintOut copies:=1, collate:=True
End If
End Sub


Gruß Ingolf
Anzeige
AW: Drucken sheets 2 stk
03.11.2006 12:21:01
chris
Hallo danke für eure schnelle hilfe.
es soll aber immer 2 Blätter drucken.
Wenn ein Blatt aktiv ist das mit v beginnt, soll dieses und das blatt davor gedruckt werden.
eenn ein Blatt aktiv ist das mit r beginnt soll dieses und das blatt dahinter gedruckt werden.
ich hoffe es ist einigermaßen angekommen was ich erreichen möchte.
Vielen dank
AW: Drucken sheets 2 stk
03.11.2006 11:49:21
Rudi
Hallo,

Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error GoTo ERRHDL
Application.EnableEvents = False
Cancel = True
With ActiveSheet
.PrintOut
If .Index > 1 And LCase(Left(.Name, 1)) = "r" Then
Sheets(.Index - 1).PrintOut
End If
If .Index < Sheets.Count And LCase(Left(.Name, 1)) = "v" Then
Sheets(.Index + 1).PrintOut
End If
End With
ERRHDL:
Application.EnableEvents = True
End Sub

Gruß
Rudi
Anzeige
klappt erledigt
03.11.2006 12:27:52
chris
Sorry der Code funktioniert.
dank noch einmal euch beiden!

Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error GoTo ERRHDL
Application.EnableEvents = False
Cancel = True
With ActiveSheet
.PrintOut
If .Index > 1 And LCase(Left(.Name, 1)) = "r" Then
Sheets(.Index - 1).PrintOut
End If
If .Index < Sheets.Count And LCase(Left(.Name, 1)) = "v" Then
Sheets(.Index + 1).PrintOut
End If
End With
ERRHDL:
Application.EnableEvents = True
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige