Nur beschriebene Seiten drucken

Excel2003 Arbeitsmappe (xx)Tabellenblatt1 mit 3 eingerichteten Seiten mit jeweils 1 Tabelle mit 20 Zeilen und 12 Spalten, Seite 1 A5:L24, Seite 2 A31:L50, Seit 3 A57:L76

Möchte mit VBA Druchbutton erstellen, der die Seiten ausdruckt wo in Zelle A5 (=Seite1) ,A31(=Seite2) oder A57(=Seite3) Text steht z.B(12345678 Max, Muster)wenn in jeweiliger Zelle nichts steht soll diese Seite nicht ausdrucken werden.

Beispiel:
A5 876543 Max Muster
A31 234566 Bernd, Dott
A57 =leer

Dann soll er wenn ich auf denn Button klicke die Seite 1 bis 2 ausdrucken.

Würde mich freuen eine Antwort zu bekommen, bin aber Anfänger auf diesem Gebiet.

mit einer for schleife
wie
For i = 5 To 57

mit einer if abfrage, die zeile abfragen ob diese leer ist oder nicht.

wie
If ((Not range(ai).Value = „“) and (i = 5)) Then

druck befehl einfügen, mit den makrorecoder aufzeichnen den druck befehl

das wars

hallo
Der Befehl:
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Druckt mal die Aktive Seite aus, der Rest würde ich mit if then else Bedingungen Abfangen.
If Tabele1.cells(1,5)"" then
tabelle1.select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
end if

Grüsse Sebastian

Hallo
wollte mich für die schnelle Anwort bedanken.
Habe heute Nachtschicht und werde es mit meinen minimalen VBA wissen mal ausprobieren.
Schauen wir mal ob ich das hin bekomme.
Ich melde mich dann wieder Danke !!

Hallo Calimero-xl,
hier mein Lösungsvorschlag:

Private Sub CommandButton1_Click()

With Worksheets(„Tabelle1“)
If .Cells(5, 1) Empty Then
Range(„A5:L24“).PrintPreview
End If
If .Cells(31, 1) Empty Then
Range(„A31:L50“).PrintPreview
End If
If .Cells(57, 1) Empty Then
Range(„A57:L76“).PrintPreview
End If
End With
End Sub

Der Commondbutton ist bei mir auf Blatt 1 eingrichtet.

Gruß Hugo

Hallo Calimero-xl,

habe vergessen den Druckbefehl zu ändern (Printpreview um nicht ständig zu drucken bei meinen Experimenten)
Diesen Befehl eine echte Druckausgabe auf Print ändern.

Gruß Hugo

Hallo Hugo,
hat Super funktioniert.Danke
Eine Frage hab ich noch, Du gibst If .Cells(5, 1)für Zelle A5 ein,wenn ich If.Cells(2, 10) eingebe ist das dann Zelle J2 die abgefragt wird?

Vielen dank für deine Hilfe
Guten Rutsch 2013
Calimero-xl

1 Like

Hallo Calimero-xl,
ersteimal danke für die Wünsche, auch Dir ein erfolgreiches und angenehmes 2013.

Eine Frage hab ich noch, Du gibst If .Cells(5, 1)für Zelle A5 ein,wenn ich If.Cells(2, 10) eingebe ist das dann Zelle J2 die abgefragt wird?

Ja das ist korrekt! (klappt doch schon super bei Dir)

Gruß Hugo

Hallo Calimero,

probiere mal die beiden folgenden Makros.

Gruß
Franz

Sub Drucken\_1()
 Dim wks As Worksheet
 Set wks = ActiveSheet

 With wks
 If .Range("A5") "" Then
 .PrintOut from:=1, to:=1, Priview:=False
 End If
 If .Range("A31") "" Then
 .PrintOut from:=2, to:=2, Priview:=False
 End If
 If .Range("A57") "" Then
 .PrintOut from:=3, to:=3, Priview:=False
 End If
 End With 'wks
End Sub

Sub Drucken\_2()
 Dim wks As Worksheet
 Set wks = ActiveSheet

 With wks
 If .Range("A57") "" Then
 .PrintOut from:=1, to:=3, Priview:=False
 ElseIf .Range("A31") "" Then
 .PrintOut from:=1, to:=2, Priview:=False
 ElseIf .Range("A5") "" Then
 .PrintOut from:=1, to:=1, Priview:=False
 End If
 End With 'wks
End Sub

Grüezi Calimero

Wenn in den bestimmten Bereichen noch andere Werte stehen dann werden diese automatisch auch mit ausgedruckt.

Du könntest allenfalls über den Autofilter und eine Hilfsspalte einzelne Zeilen ausblenden und dann erst drucken.

Oder Du legst dir benutzerdefinierte Ansichten an in denen jeweils einzelne Zeilenblöcke ausgeblendet sind und verwendest dann die entsprechende Ansicht zum Drucken.

Alles weitere kann nur mit VBA-Programmierung erreicht werden.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hi,
da musst du einfach per Makro die Zellen abfragen und in Abhängigkeit davon den Druck auslösen.
Wo ist das Problem?
Gruß,
Ptonka