Microsoft Excel

Herbers Excel/VBA-Archiv

Drucken

Betrifft: Drucken von: Matthias
Geschrieben am: 16.09.2004 07:42:22

Ich habe folgendes Problem.

Ich habe eine bestimmte anzahl von Tabellenblättern im moment 41 .
Auf diesen Tabellenblättern ist immer ein Tabelle in die die Werte automatische eingefügt werden.

Der Bereich in dem die Werte eingefügt werden geht von (A6:J31).
Die gesamte Tabelle die später gedruckt werden soll hat den Bereich (A1:J33).

Es sollen aber nur die Tabelleblätter gedruckt werden, mit der Tabelle von (A1:J33), in denen der Bereich von (A6:J31) mit Werten belget ist.

Die Tabellenblätter wo der bereich(A6:J31)nicht belegt ist, sollen vor dem drucken gelöscht werden. Damit nicht soviel Papier verschwendet wird.


Bitte um Hilfe und sage jetzt schonmal Danke.

mfg Matthias


  


Betrifft: AW: Drucken von: Dominic
Geschrieben am: 16.09.2004 13:00:14

Probier mal das aus:

Sub test()
Dim a As Integer
Application.DisplayAlerts = False
For a = Worksheets.Count To 1
    With Worksheets(a)
        If WorksheetFunction.CountA(.Range(.Cells(6, 1), .Cells(31, 10))) = 0 Then
            Worksheets(a).Delete
        Else
            Worksheets(a).PrintOut
        End If
    End With
Next a
Application.DisplayAlerts = True
End Sub


Dominic


  


Betrifft: AW: Drucken von: Matthias
Geschrieben am: 16.09.2004 14:11:47

Erstmal danke für deine hilfe

Leider muss ich dir sagen das nichts passiert ist er hat weder, die Blätter gelöscht wo der ausgewählte breich nicht belegt ist, noch die Blätter gedruckt in den der Bereich belegt ist

Trotzdem nochmals danke

Mfg Matthias


  


Betrifft: AW: Drucken von: Dominic
Geschrieben am: 16.09.2004 14:20:58

So solls gehen:

Sub test()
Dim a As Integer
Application.DisplayAlerts = False
For a = Worksheets.Count To 1 Step -1
    With Worksheets(a)
        If WorksheetFunction.CountA(.Range(.Cells(6, 1), .Cells(31, 10))) = 0 Then
            Worksheets(a).Delete
        Else
            Worksheets(a).PrintOut
        End If
    End With
Next a
Application.DisplayAlerts = True
End Sub


Dominic


  


Betrifft: AW: Drucken von: Matthias
Geschrieben am: 16.09.2004 14:52:39

Danke für deine hilfe

Es funzt aber währe es auch möglich das er nur folgende Blätter druckt?
Ich habe meine Blätter die er nur drucken soll Page_1,Page_2 usw bis Page_41 benannt.

Das programm ist soweit in ordung aber es druckt auch die seiten vor den oben genannten Seiten sind.
Das darf aber nicht sein könntest du das noch so ändern das es nur diese seiten druckt?

mfg Matthias


  


Betrifft: AW: Drucken von: Dominic
Geschrieben am: 16.09.2004 15:13:33

So kann man es dann auch machen:

Sub test()
Dim a As Integer
Application.DisplayAlerts = False
For a = Worksheets.Count To 1 Step -1
    With Worksheets(a)
        If WorksheetFunction.CountA(.Range(.Cells(6, 1), .Cells(31, 10))) = 0 Then
            Worksheets(a).Delete
        Elseif left(.name,5)="Page_" then
            Worksheets(a).PrintOut
        End If
    End With
Next a
Application.DisplayAlerts = True
End Sub


Dominic


  


Betrifft: AW: Drucken von: Matthias
Geschrieben am: 16.09.2004 15:47:09

Danke für deine Hilfe

mfg Matthias


 

Beiträge aus den Excel-Beispielen zum Thema "Drucken"