Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Drucken über VBA
ABO
Hallo zusammen,
ich habe folgendes Makro:
Sub Drucken()
Dim rLetzte As Range
Set rLetzte = Cells.Find("*", , xlValues, 2, 1, 2, False, False, False)
If Not rLetzte Is Nothing Then
With ActiveSheet
.PageSetup.PrintArea = .Range("A2", rLetzte).Address
.PrintOut
.PageSetup.PrintArea = ""
End With
End If
ActiveSheet.PageSetup.PrintArea = "$A$2:$M$700"
End Sub
Was ich jedoch nicht nachvollziehen kann, auf welche Spalte er sich bezieht.
Ich hoffe es kann mir jemand weiter helfen.
Gruß ABO

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Drucken über VBA
19.11.2009 13:47:57
Björn
Hallo,
Du suchst nach *.
Die gefundene Zelle wird dann als Spalte für den Druckbereich benutzt.
Syntax für "Find":
Find(What, [After], [LookIn], [LookAt], [SearchOrder], [SearchDirection As XlSearchDirection = xlNext], [MatchCase], [MatchByte], [SearchFormat]) As Range
Gruß
Björn
AW: Drucken über VBA
19.11.2009 13:56:28
ABO
Hallo Björn,
wo und was muss ich ändern, damit das Makro nur die Spalte A untersucht ob Daten vorhanden sind?
Gruß Andreas
AW: Drucken über VBA
19.11.2009 14:02:41
Björn
Hallo,
wenn Du einen bestimmten Bereich (mehr als eine Zelle) markiert hast, dann sucht Excel auch nur in der Markierung.
Einfach vorher ein Range("A1:A100").Select (Zeilen natürlich noch anpassen).
Du setzt aber mit deinem Code den Druckbereich anhand der gefundenen Zelle.
Es wird also nur Spalte A gedruckt. Ist das richtig?
Gruß
Björn
Anzeige
AW: Drucken über VBA
19.11.2009 14:13:10
ABO
Hallo Björn,
nein es wird nicht nur die Spalte A gedruckt!
Es werden alle Spalten gedruckt, wo Daten vorhanden sind.
Ich möchte das die Spalte A nach Daten Überprüft wird, und dann von den Spalten A-M die Zeilen gedruckt werden wo Daten von der Spalte A vorhanden sind.
Wenn Keine Daten in den Zellen der Spalte A sind, sollen die Zeilen auch nicht gedruckt werden.
Gruß ABO
AW: Drucken über VBA
19.11.2009 14:25:25
Björn
Hallo,
dann noch ein paar Fragen.
Du schreibst:
Wenn Keine Daten in den Zellen der Spalte A sind, sollen die Zeilen auch nicht gedruckt werden.

Heißt, dass hier müssen noch Zeilen ausgeblendet werden?
Oder geht es Dir um die letzte befüllte Zeile? Das würde ich dann ganz anders machen.
Weiters schreibst Du:
es werden alle Spalten gedruckt, wo Daten vorhanden sind.

Muss das auch geprüft werden? Also nur Spalten mit Inhalt?
Oder meinst Du alle Spalten von A-M, wenn in A was steht?
Gruß
Björn B.
Anzeige
AW: Drucken über VBA
19.11.2009 14:30:59
ABO
Hallo Björn,
Punkt 1: ja wenn keine Daten in den Zellen der Spalte A sind, sollen diese Zeilen auch nicht gedruckt werden.
Punkt 2: ich meine alle Spalten von A-M
Mein Makro funktioniert ja auch soweit, jedoch werden die Spalten L-M nicht gedruckt, da dort in den Zellen noch keine Daten stehen.
Gruß ABO
AW: Drucken über VBA
19.11.2009 14:33:35
Björn
Dein Makro kann den Punkt 1 nicht berücksichtigen...
Ist es wirklich so, dass du Leerzeilen hast, die nicht gedruckt werden und dann kommen wieder welche mit Inhalt? Das müsstest Du über Autofilter lösen.
Also ich meine z.B.
Drucken Zeile 1-127; dann Zeile 128-135 leer, auch nicht drucken; dann 136-150 drucken
Gruß
Björn B.
Anzeige
AW: Drucken über VBA
19.11.2009 14:44:12
ABO
Hallo Björn,
ich verstehe nicht ganz was du mir damit sagen willst.
Die Zeilen Funktionieren bei mir schon. Es werden nur die Zeilen Gedruckt wo Daten vorhanden sind.
Das einzigste was noch nicht funktioniertist, dass die Spalte L-M nicht mit ausgedruckt wird.
Gruß ABO
AW: Drucken über VBA
19.11.2009 14:55:49
Björn
Ok, da haben wir klassisch aneinander vorbeigeredet...
Du brauchst die Zeile:
.PageSetup.PrintArea = "A2:M" + CStr(rLetzte.Row)

Deine alte Codezeile hat von A2 bist zur letzten Zelle benutzt.
Ich verwende aus der letzten Zelle nur die Zeile und gebe das "M" für die Spalte fix ein.
Warum setzt Du am Ende den Druckbereich wieder auf A2:M700?
Und warum hebst Du ihn dazwischen ganz auf (PrintArea = "")?
Gruß
Björn
Anzeige
AW: Drucken über VBA
19.11.2009 15:04:02
ABO
Hallo Björn,
ich stelle den Druckerbereich wieder auf M2:M700, damit man über die normale Druckerfunktion die gesamte Tabelle Drucken kann.
PrintArea="" habe ich vergessen wieder heraus zu nehmen.
Gruß ABO
Funktioniert es jetzt? oT
19.11.2009 15:14:39
Björn
AW: Drucken über VBA
19.11.2009 15:03:08
IngGi
Hallo ABO,
ich wusste gar nicht, dass man einen Druckbereich definieren kann, der aus mehreren getrennten Zellbereichen besteht. Aber du sagst ja selbst, dass das mit den Zeilen bei dir funktioniert. Dann müsste mit folgendem Makro (kleine Änderung in der Find-Zeile) auch die Spaltenauswahl hinhauen:
Sub Drucken()

Dim rLetzte As Range
Set rLetzte = Range("A:A").Find("*", , xlValues, 2, 1, 2, False, False, False)

If Not rLetzte Is Nothing Then
  With ActiveSheet
    .PageSetup.PrintArea = .Range("A2", rLetzte).Address
    .PrintOut
    .PageSetup.PrintArea = ""
  End With
End If

ActiveSheet.PageSetup.PrintArea = "$A$2:$M$700"

End Sub
Code eingefügt mit VBA in HTML 2.0.0.3size>
Gruß Ingolf
Anzeige
AW: Drucken über VBA
19.11.2009 15:08:45
Björn
Hallo Ingolf,
dann lass Dich mal eines Besseren belehren:
ich wusste gar nicht, dass man einen Druckbereich definieren kann, der aus mehreren getrennten Zellbereichen besteht.

Natürlich geht das, z.B. so:
ActiveSheet.PageSetup.PrintArea = "$E$33,$B$20:$D$21,$F$10:$G$12,$H$4:$J$9,$C$10:$D$14,$A$35,$F$40"

Du kannst einen Druckbereich aus zig beliebigen Bereichen Deiner Tabelle definieren.
Haken dabei ist nur, dass jeder Bereich für sich auf einer extra Seite gedruckt wird.
Daher ist das meist nicht so zielführend.
Einfach mal testen.
Wild Mehrfachmarkierungen machen, dann Druckbereich festlegen und auf Seitenansicht gehen.
Übrigens habe ich das auf der Klugscheißeruniversität gelernt ;-)
Gruß
Björn
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige