Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1512to1516
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

Split von Sheets und Drucken

Split von Sheets und Drucken
21.09.2016 08:45:49
Sheets
Hallo zusammen,
hab das Makro mal auf das nötigste gekürzt für hier.
Mit folgendem Code bekomme ich einen Laufzeitfehler 9
Dim ArrDruck() As String
Dim i As Integer
ArrDruck = Split("10A, 10B, 10C, 30A, 30B, 30C, 30D, GfB, 50A, 50B, 50C", ",")
For i = 0 To UBound(ArrDruck)
Sheets(ArrDruck(i)).Range("A1:E57").PrintOut, Collate:=True
Next
Endergebnis soll ein Seriendruck sein.
ArrDruck(i) gibt in der Schleife immer korrekt den jeweiligen Sheetnamen als String zurück, aber mit dem Druckbefehl kommt ab dem 2. Sheetnamen Fehler 9.
Hat jemand ne Ahnung, an welcher Stelle es nicht passt?
Falls ich eine Beispieldatei hochladen soll, kurz Bescheid geben.
Vielen Dank

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Leerzeichen ab dem zweiten Eintrag...
21.09.2016 09:11:58
Case
Hallo, :-)
das ist klar. Du hast ab dem zweiten Eintag im Array ein Leerzeichen am Anfang des Namens. ;-)
Schreibe es so:
ArrDruck = Split("10A,10B,10C,30A,30B,30C,30D,GfB,50A,50B,50C", ",")
Servus
Case

AW: Leerzeichen ab dem zweiten Eintrag...
21.09.2016 09:16:11
japes36
Orrrr, frag nicht, wie lange ich gegrübelt habe, wo der Fehler liegt.
Vielen Dank. :)
Beim Testen mit msgbox ArrDruck(i) ist mir das Leerzeichen nicht aufgefallen.
Schau im VBA-Editor ins Lokalfenster...
21.09.2016 09:20:11
Case
Hallo, :-)
das siehst Du am besten, wenn du dir das Array (Mit F8 bis Zeile "For i =..." vorgehen) im VBA-Editor im Lokalfenster anschaust. ;-)
Servus
Case

Anzeige
AW: Schau im VBA-Editor ins Lokalfenster...
21.09.2016 09:39:37
japes36
Oh, das Lokalfenster hatte ich bis jetzt nie eingeschaltet. Merk ich mir.
Danke :)
Du hast jetzt nicht nohc zufällig eine Idee, wie ich die 11 Blätter in EINEN Druckauftrag bekomme, um sie am Ende vom Drucker tackern zu lassen?
AW: Ein Druckauftrag
21.09.2016 09:50:14
Daniel
Hi
um alle Blätter in einen Druckauftrag zu bekommen, musst du die zu druckenden Blätter als Gruppe selektieren (STRG-Taste beim Anklicken gedruckt halten) und dann die Gruppe drucken.
Dabei muss dann die PrintArea richtig eingestellt sein.
als Makro sieht das so aus:
Sub drucken()
Dim ArrDruck() As String
Dim i As Integer
Dim SelectArt As Boolean
ArrDruck = Split("10A, 10B, 10C, 30A, 30B, 30C, 30D, GfB, 50A, 50B, 50C", ",")
SelectArt = True
For i = 0 To UBound(ArrDruck)
With Sheets(ArrDruck(i))
.PageSetup.PrintArea = "A1:E57"
.Select SelectArt
End With
SelectArt = False
Next
ActiveWindow.SelectedSheets.PrintOut
End Sub
Gruß Daniel
Anzeige
AW: Ein Druckauftrag
21.09.2016 10:04:51
japes36
Funktioniert leider so (noch) nicht. Es wird nur die erste Seite ausgedruckt (10A)
Sub Seriendruck()
Application.ScreenUpdating = False
If MsgBox("Serienausdruck starten?", vbYesNo) = vbYes Then
Dim ArrDruck() As String
Dim i As Integer
Dim SelectArt As Boolean
ArrDruck = Split("10A,10B,10C,30A,30B,30C,30D,GfB,50A,50B,50C", ",")
SelectArt = True
For i = 0 To UBound(ArrDruck)
With Sheets(ArrDruck(i))
.PageSetup.RightHeader = "Stand vom: " & Format(Now, "dd.mmmm yyyy")
.PageSetup.RightMargin = Application.InchesToPoints(0.1)
.PageSetup.RightFooter = "Kontrolle durch Abteilungsleitung: _
_____________________ (Unterschrift)"
.PageSetup.PrintArea = "A1:E57"
.Select SelectArt
End With
SelectArt = False
Next
ActiveWindow.SelectedSheets.PrintOut , collate:=True
Range("A5").Select
ActiveWindow.View = xlNormalView
ActiveSheet.DisplayPageBreaks = False
End If
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Ein Druckauftrag
21.09.2016 10:24:41
Daniel
Hm
da scheint MS was an der Selectfunktion geändert zu haben.
dann probiere zum Drucken einfach mal:
Sheets(ArrDruck).Select
ActiveWindow.SelectedSheets.PrintOut , collate:=True
Gruß Daniel
AW: Ein Druckauftrag
21.09.2016 10:26:59
japes36
Werde ich probieren. Danke :)
Zur Not tacker ich eben mit Hand *g
AW: Ein Druckauftrag
21.09.2016 10:34:16
japes36
So geht's. Danke :)
AW: Ein Druckauftrag
21.09.2016 10:35:11
japes36

Sub Seriendruck()
Application.ScreenUpdating = False
If MsgBox("Serienausdruck starten?", vbYesNo) = vbYes Then
Dim ArrDruck() As String
Dim i As Integer
Dim SelectArt As Boolean
ArrDruck = Split("10A,10B,10C,30A,30B,30C,30D,GfB,50A,50B,50C", ",")
SelectArt = True
For i = 0 To UBound(ArrDruck)
With Sheets(ArrDruck(i))
.PageSetup.RightHeader = "Stand vom: " & Format(Now, "dd.mmmm yyyy")
.PageSetup.RightMargin = Application.InchesToPoints(0.1)
.PageSetup.RightFooter = "Kontrolle durch Abteilungsleitung: _
___________________________ (Unterschrift)"
.PageSetup.PrintArea = "A1:E57"
.Select SelectArt
End With
SelectArt = False
Next
Sheets(ArrDruck).Select
ActiveWindow.SelectedSheets.PrintOut , collate:=True
Range("A5").Select
ActiveWindow.View = xlNormalView
ActiveSheet.DisplayPageBreaks = False
End If
Application.ScreenUpdating = True
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige