Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.
Druckereinstellung in EXCEL...?
Ich möchte den Druck einer Exceltabelle so einstellen, das NUR die ausgefüllten Zeilen gedruckt werden ohne das ich irgendwas markieren oder ähnliches muss! Irgendwie geht das aber wie? Die Tabelle ist ca. 200 Zeilen lang, aber ich habe eben manchmal nur wenige Zeilen zu drucken!
3 Antworten
- 🐟 Fish 🐟Lv 7vor 10 JahrenBeste Antwort
Indem es nachschaut TriPo2
Die Lösung von Dagobert ist schon nicht schlecht. Sie funktioniert aber nur wenn in der ersten Spalte immer etwas steht.. Wenn die zweite Spalte besetzt und die erste nur manchmal dann funktioniert das nicht mehr. Hier mein Vorschlag. Hab leider kein Excel daher mu0t du u. U. einzelne Syntaxfehler korregieren.
Option Explicit
' Koordinaten der Spalte bestimmen
Public Function GetKoordString(x as Long. y as Long, Optional absolutx as Boolean = true, Optional absoluty as Boolean = true)
As String
Long l1
Long l2
Dim textcol as String
Dim textrow as String
l1 = x/26
l2 = x - (l1*26)
textcol = chr(65+l2)
' >Z dann weiter mit AA, AB, AC ...ZZ
if (l1>0)
textcol = chr(65+l2) + textcol
textcol = trim(str(y))
GetKoordString = textcol
if (absolutx)
GetKoordString = GetKoordString + "$"
GetKoordString = textrow
if (absoluty)
GetKoordString = GetKoordString + "$"
End Function
Public Sub DruckeNichtLeere(Tabelle as String)
Dim WS As Worksheet
Dim n as Long
Dim m as Long
Dim mx as Long
Dim my as Long
Dim found as Boolean
Dim savePrintArea as String
found = true
mx = 0
my = 0
n = 0
WS = ThisWorkbook.Worksheets(Tabelle)
do while (found)
m = 0
found = false
For m = 0 To n
' Ist Spalte n Leer?
if (not (IsEmpty(Cells(n, m)))
found = true
my = max(n, my)
end if
' Ist Zeile n Leer?
if (not (IsEmpty(Cells(m, n)))
found = true
mx = max(n, mx)
end if
Next
n = n + 1
Loop
With Sheets(Tabelle)
' Printarea sichern
savePrintArea = PageSetup.PrintArea
'Druckbereich festlegen:
.PageSetup.PrintArea = GetKoordString(1, 1) & ":" & GetKoordString(mx, my)
'Drucken:
.PrintOut
'Druckbereich wiederherstellen:
. PageSetup.PrintArea = savePrintArea
End With
End Sub
Mit DruckeNichtLeere("Name der Tabelle") kannst du dann die Tabelle drucken.
Die Routine schaut in einer Zeile 1... und Spalte A .... so lange nach bis nur noch leere Zellen gefunden werden. So ist sichergestellt das auch dann der Bereich gedruckt wird wenn mal eine Zelle leer ist.
Einzige Ausnahme wenn alle Zellen einer Spalte und einer Zeile mit der gleichen Nummer (A=1, B=2 ... leer sind), dann wird dieser Bereich als Ende der Tabelle angesehen.
Hab das Programm nicht getestet weil ich kein VBA hab. Kann also sein das du das eine oder andere noch korregieren mußt.
Der Nachteil dieses Programms ist das die Suchgeschwindikeit mit dem Quadrat der Zellenzahl steigt.
Wieviele Zeilen und Spalten die Tabelle hat spielt allerdings keine Rolle.
- GuentherLv 4vor 10 Jahren
Wie bereits gesagt, ohne „Einstellung“ geht das nicht. Aber Du kannst den Druckbereich festlegen:
Markiere den Bereich, den Du drucken möchtest und dann:
Datei/Druckbereich/Druckbereich festlegen
oder Du kannst auch direkt zum Druckauftrag gehen:
Datei/drucken/ Markierung anklicken
- TriPo2Lv 7vor 1 Jahrzehnt
Ohne Markierung kann das doch gar nicht funktionieren. Wenn die Tabelle 200 Zeilen lang ist und Du willst nur 10 Zeilen ausgedruckt bekommen - wie soll das Programm denn "wissen", dass Du nur 10 Zeilen ausgedruckt haben möchtest?