Excel - Nur Seiten mit Text drucken - VBA-Lösung?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Sub DruckBereich()

Dim i As Long

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row

   If Cells(i, 1).Formula = "" Then

       ActiveSheet.PageSetup.PrintArea = "A1:A" & i

       Exit For

   End If

Next

End Sub

Woher ich das weiß:eigene Erfahrung
ernkie 
Fragesteller
 15.01.2021, 11:08

Vermutlich hab ich dies falsch angewendet. Es tut sich auf jeden Fall nichts!

Habe es wie von Dir geschrieben in "Tabelle8" eingetragen
Funktioniert nicht

wie auch versucht in einem Modul wie folgt einzusetzen

Sub Drucken()'
' Drucken Makro'

'
Dim i As Long

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row

   If Cells(i, 1).Formula = "" Then

       ActiveSheet.PageSetup.PrintArea = "A1:A" & i

       Exit For

   End If

Next

End Sub

Was kann ich noch versuchen?

1
geri3d  15.01.2021, 11:14
@ernkie

Du kannst das Makro von Hand starten oder du verbindest einen Button mit der Sub.

1
ernkie 
Fragesteller
 15.01.2021, 11:39
@geri3d

OK - jetzt wird der zu druckende Bereich markiert (in Umbruchvorschau)

Wenn jetzt statt nur anzeigen noch der Drucker mit dem gleichen Modul starten würde - wäre ich sehr happy. Kannst Du mir da auch noch helfen?

1
geri3d  15.01.2021, 12:57
@ernkie

Das müsste ich selber erst googeln. Stichworte sind Excel VBA Drucken

1
ernkie 
Fragesteller
 17.01.2021, 09:46
@geri3d

Stehe total auf dem Schlauch!
Guten Morgen @geri3d

Versuchte, den Drucker zu starten (gem. Anleitung) / funktionierte nicht. den Befehl wieder gelöscht. Aber ich bringe Dein Modul nicht mehr zum Laufen. (Habe Button mit korrekter Makroadresse)

Hast Du noch Geduld mit mir? Das eingesetzte Makro:

Sub Drucken()
'
' Drucken Makro
'

'
Dim i As Long

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row

   If Cells(i, 1).Formula = "" Then

       ActiveSheet.PageSetup.PrintArea = "A1:F" & i

       Exit For

   End If

Next

End Sub

Wenn ich es auslöse - es passiert einfach gar nichts.
Das Blatt ist normalerweise geschützt, aber es funktioniert auch nicht, wenn ich den Schutz aufhebe.

Hast Du noch einen guten Rat? Riesen-Dank!

0

Hier noch der Print Befehl.
Dieser alleine erkennt allerdings nicht ob ein Drucker angeschlossen ist und Papier vorhanden.
Also, vorher immer Schön von Hand prüfen, ob dies der Fall ist.
Eine Excel Sheet kann mehrere Seiten haben. Mit: From:=1, To:=1,
würde nun Seite 1 gedruckt werden. Läßt man dies weg alle Seiten auf denen etwas steht, oder im Vorfeld der Druckbereich eingeschränkt wurde.
==

ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
===
Außerdem muss du noch in der Schleife dafür sorgen auf das nächste Sheet zu wechseln. Nur das "sichtbare Sheet" (mit all seinen Seiten) wird ausgedruckt.