ich möchte beim sortieren meiner Excellisten den Druckbereich in meinem Makro unabhängig von der Anzahl der Zeilen bis Spalte O begrenzen. Das heißt die Zeilen haben mehr Spalten wie ich ausdrucken möchte.
Da die Anzahl der Zellen unterschiedlich ist kann ich mit Range (A1:open_mouth:1500) nicht arbeiten.
Das ganze nur für ein Tabellenblatt.
Für Euere Hilfe bin ich dankbar.
ich hoffe du hälst die Fragen aus, sorry müssen aber sein.
ich möchte beim sortieren
Hat das Sortieren irgendwas mit der Anfrage zu tun?
Wenn ja, was?
meiner Excellisten den Druckbereich
in meinem Makro unabhängig von der Anzahl der Zeilen bis
Spalte O begrenzen.
Ich verstehe nicht ganz den Zusammenhang zwischen Anzahl der Zeilen und Spalte O.
Mit Vba kannste doch, völlig unabhängig von der Anzahl der Zeilen, immer nur Ax:open_mouth:x ausdrucken.
Das heißt die Zeilen haben mehr Spalten
wie ich ausdrucken möchte.
Vba interessiert es doch nicht was in den Spalten P usw. steht.
Da die Anzahl der Zellen unterschiedlich ist kann ich mit
Range (A1:open_mouth:1500) nicht arbeiten.
Was meinst du mit arbeiten? Das sind 22500 Zellen.
Beschreib bitte mal anders was du da vorhast.
Irgednwie sieht das lösbar aus, und ich denke ich krieg das auch hin, aber ich weiß grad nicht genau genug was ich machen soll um den Code zu entwickeln.
ich möchte beim sortieren meiner Excellisten den Druckbereich
in meinem Makro unabhängig von der Anzahl der Zeilen bis
Spalte O begrenzen.
Da scheinbar kein Ereignis durch das Sortieren ausgelöst wird, könnte Dir möglicherweise der folgende Code weiterhelfen. Er legt den Druckbereich vor dem Ausdrucken fest:
Private Sub Workbook\_BeforePrint(Cancel As Boolean)
Tabelle1.PageSetup.PrintArea = "$A$1:blush:O$" & Tabelle1.Range("$A$" & Tabelle1.Rows.Count).End(xlUp).Row
End Sub
Der Name der Tabelle muß noch angepaßt werden. Ob es ausreichend ist, die unterste gefüllte Zeile nur aus Spalte A zu beziehen, kann ich natürlich nicht sagen.
Vielen Dank an Carsten und Reinhard.
Nun am Wochenende probiere ich den Vorschlag von Reinhard aus, ich lasse es Euch wissen. Vielen Dank bis dann.
(Druckbereich einrichten für die Spalten A-O - mit Selbsterkennung wieviel Zeilen belegt sind.
Grüße H.
sieht gar nicht schlecht aus. Ich habe es nachgestellt mit
Sub tt()
Sheets(2).Select
Sheets(1).PageSetup.PrintArea = „$A$1:blush:O$“ & Sheets(1). _
Range("$A$" & Rows.Count).End(xlUp).Row
End Sub
Das geht fehlerfrei.
Entweder ist bei meiner Nachstellung doch ein Unterschied zum Original, oder der Fehler liegt woanders.
Ich weiß noch nicht was Private Sub bedeutet, Makro bleibt in
Zeile Gesamt_Stückliste.PageSetup… stehen.
Ich bin mir ziemlich sicher, dass der Ausdruck „Gesamt_Stückliste“ falsch ist. Der Ausdruck „Gesamt_Stückliste“ ist bestimmt der Name des Tabellenblattes, der im Tabellenblatt-Register verwendet wird. Hier im Code sollte allerdings der Code-Name des Tabellenblattes verwendet werden, der im Projektfenster des VBA-Editors zu sehen ist.
Funktionieren sollte allerdings auch diese Schreibweise:
Worksheets("gesamt\_Stückliste")....
Ich empfehle allerdings, den Code-Namen zu verwenden, da sonst Schwierigkeiten auftreten werden, falls der Tabellenblatt-Name im Blatt-Register geändert wird. Für Code-Namen bitte keine Umlaute verwenden.
Sheets(1).PageSetup.PrintArea = „$A$1:blush:O$“ & Sheets(1). _
Range("$A$" & Rows.Count).End(xlUp).Row
End Sub
rausgenommen Sheets(2), wusste nicht für was das gut ist.
Probierte auch mit Sheets(1) und keine Änderung dadurch.
Makro funktioniert, warum Sheets(2).
Auf jeden Fall vielen, vielen Dank an Euch Beiden.
Schönes Wochenende.