Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro zum Drucken umschreiben

Makro zum Drucken umschreiben
22.10.2024 11:02:32
sebastian
Hi,
ich hab schon mal einen Forumsbeitrag aufgemacht, für ein Makro zum Drucken bestimmter Seiten wenn in Zellen ein Inhalt steht.
Der wurde aber geschlossen, weil er gelöst war, jetzt kann ich nichts mehr fragen und wollte aber von dem Code doch noch was umschreiben. Kenn mich aber mit VBA nicht aus und habs mit rumprobieren selber auch nicht hinbekommen :D

Public BlattIndex As Integer

Public Arr() As String

Sub Drucken()
Dim i As Integer, WF

Set WF = WorksheetFunction
'Info: IsText() gibt es nur als Worksheetfunction, während IsNumeric() als VBA Funktion existiert

'Deckblatt immer drucken
ReDim Arr(0) ' Initialisiere Array und füge das Deckblatt hinzu
Arr(0) = Sheets("Innentüren").Name

BlattIndex = 1 ' Startindex für weitere Blätter

For i = 3 To ThisWorkbook.Sheets.Count
With Sheets(i)
Select Case .Name
Case "Stückliste HDF"
'wenn in einer der Zellen von A7:A22 eine Zahl, dann sollte der Bereich A1:R33 gedruckt werden.
If WF.Count(.Range("A7:A22")) > 0 Then
.PageSetup.PrintArea = "A1:R33"
AddArr (.Name)
End If


Case "Stückliste Kiefer"
'wenn in einer der Zellen von A7:A22 eine Zahl, dann sollte der Bereich A1:S33 gedruckt werden.
If WF.Count(.Range("A7:A22")) > 0 Then
.PageSetup.PrintArea = "A1:S33"
AddArr (.Name)

End If

Case "Stückliste Verkleidungen"
'wenn in Zelle A7 eine Zahl, dann sollte der Bereich A1:O33 gedruckt werden,
'wenn aber zusätlich in Zelle A39 eine Zahl
'oder in M39 eine Zahl steht, dann sollte der Bereich A1:O65 gedruckt werden.
If IsNumeric(.Range("A7")) Then
.PageSetup.PrintArea = "A1:O33"

If IsNumeric(.Range("A39")) Or IsNumeric(.Range("M39")) Then
.PageSetup.PrintArea = "A1:O65"
End If
AddArr (.Name)

End If

Case "Stückliste Zarge"
'wenn in Zelle A8 eine Zahl, dann sollte der Bereich A1:O33 gedruckt werden,
'wenn aber zusätlich in Zelle A40 eine Zahl, dann sollte der Bereich A1:O65 gedruckt werden.
If IsNumeric(.Range("A8")) Then
.PageSetup.PrintArea = "A1:O33"

If IsNumeric(.Range("A40")) Then
.PageSetup.PrintArea = "A1:O65"
End If
AddArr (.Name)

End If

Case "Stückliste Stockstücke"
'wenn in Zelle A7 eine Zahl, dann sollte der Bereich A1:R33 gedruckt werden,
'wenn aber zusätzlich in Zelle A39 eine Zahl
'oder in Zelle O39 eine Zahl, dann sollte der Bereich A1:R65 gedruckt werden.
If IsNumeric(.Range("A7")) Then
.PageSetup.PrintArea = "A1:R33"

If IsNumeric(.Range("A39")) Or IsNumeric(.Range("O39")) Then
.PageSetup.PrintArea = "A1:R65"
End If
AddArr (.Name)

End If

Case Else
'mach nix

End Select

End With
Next i

' Blätter in der Druckvorschau anzeigen
Sheets(Arr).PrintPreview
End Sub

Private Sub AddArr(BLName)
ReDim Preserve Arr(BlattIndex)
Arr(BlattIndex) = BLName
BlattIndex = BlattIndex + 1
End Sub


Der Code sagt, dass das erste Tabellenblatt nicht gedruckt wird, das zweite das Deckblatt sozusagen wäre und da alles gedruckt wir und ab dem dritten bestimmte Bedingungen. Jetzt möchte ich es gerne umschreiben, dass beim Deckblatt, dem zweiten Tabellenblatt nicht alles, sondern nur der Bereich A1:L29 gedruckt wird, weil ich daneben ab Zelle N4 eine Legende reingeschrieben hab, diese möchte ich aber nicht gedruckt haben.
Kann mir jemand helfen, den Code so umzuschreiben?

Vielen dank schon mal im voraus.
Gruß Sebastian
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum Drucken umschreiben
22.10.2024 11:12:41
UweD
Hallo


Der Code war von mir. Aber du brauchst nichts zu ändern.

Einmalig kannst du auf dem Deckblatt den Druckbereich festlegen.
- A1: L29 markieren
- Seitenlayout, Druckbereich, Druckbereich festlegen


LG UweD
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige