Registriert seit: 06.10.2014
Version(en): 07
Hallo freunde
ich habe ein problem:
ich habe eine mappe erstellt in der befinden sich ca 12 tabellen.
ich den tabellen 2-11 werden aus listen (tabelle 12) dinge ausgewählt welche dann in tabelle 1 zusammengefasst werden.
das passiert automatisch, dann habe ich ein makro mit dem ich aus tabelle 1 alle zeilen auslese, die keine 0 enthalten und diese werden dann gedruckt. ich habe nach jeder liste (für jede tabelle 2-11 wird eine neue liste erstellt) einen seitenumbruch eingefügt sodass immer eine liste auf einem blatt gedruckt wird.
nur würde ich gerne in das makro mit einbauen, dass wenn in jeder liste an einer bestimmte stelle eine 0 steht, dass dann die ganze tabelle bis zum seitenumbruch nicht gedruckt wird...
außerdem habe ich das problem das ich, um das makro zu aktivieren eine kleine clipart eingefügt habe, die auch immer mitgedruckt wird aber das mchte ich auch nciht...
ich hoffe ich konnte mich verständlich machen und mir kann jemand helfen :)
Gruß
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi, Zitat:außerdem habe ich das problem das ich, um das makro zu aktivieren eine kleine clipart eingefügt habe, die auch immer mitgedruckt wird aber das mchte ich auch nciht... klicke die Grafik mit der rechten Maustaste an, es öffnet sich ein Menü. Hier wählst du "Grafik formatieren". Im sich öffnenden Feld wählst du nun "Eigenschaften" aus und nimmst das Häkchen bei "Objekt drucken" weg. Zu deinem eigentlichen VBA-Problem kann ich dir leider nicht weiterhelfen. Nur denke ich, dass du den potentiellen Helfern dein Makro vorstellen solltest.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:1 Nutzer sagt Danke an WillWissen für diesen Beitrag 28
• plau
Registriert seit: 06.10.2014
Version(en): 07
danke schonmal für den tipp :)
mein makro sieht im moment so aus: Sub Drucken() Dim iRowL As Integer, iRow As Integer iRowL = Cells(Rows.Count, 3).End(xlUp).Row For iRow = 1 To iRowL If Cells(iRow, 3).Value = "0" Then Rows(iRow).Hidden = True End If Next iRow ActiveSheet.PrintPreview Rows.Hidden = False End Sub
und jetzt würde ich gerne da einfügen, dass wenn in B6 "-----" steht, dass er dann vom letzten seiteumbruch bis zum nächsten seitenumbruch nichts druckt...geht das überhaupt irgendwie?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
08.10.2014, 16:42
(Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2014, 16:43 von schauan.)
Hallo plau, nach dem letzten Seitenumbruch kommt aber in Excel keiner mehr  ist jetzt fachlich nicht ganz richtig ) Also, Du willst, wenn in B6 "-----" steht, die letzte Seite nicht mit drucken? Hier mal ein Ansatz. Mit ActiveSheet.HPageBreaks.Count und ActiveSheet.VPageBreaks.Count kannst Du die Anzahl der horizontalen und Vertikalen Seitenumbrüche feststellen. Die Anzahl der Druckseiten wäre dann je Richtung eine mehr. Man könnte auch diesen code nehmen: Application.ExecuteExcel4Macro("Get.Document(50)") Allerdings zählt der unter Umständen keine reinen "Bilderseiten" mit. Ausdrucken tust Du dann je nach verwendetem code die entsprechend noch auszurechnende Seitenanzahl (X): ActiveWindow.SelectedSheets.PrintOut From:=1, To:=X, Copies:=1, Collate:=True
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 06.10.2014
Version(en): 07
08.10.2014, 17:10
(Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2014, 17:11 von plau.)
erstmal danke für deine antwort und es ist schön zu sehen das ich jemanden gefunden habe der sich damit auskennt :)
zunächst einmal: das makro was ich im moment habe, habe ich nicht selbst geschrieben sondern nur kopiert und angepasst, ich selber hab sehr wenig ahnung von sowas.
nun zu deiner antwort: ich glaube da lag ein kleines missverständnis vor, ich meinte nicht den letzten umbruch sondern den vorherigen also: ich habe mehrere listen untereinander erstellt und jeweils am ende einen seiten umbruch eingefügt, damit er egal wie viel platz noch auf dem blatt ist nur die eine liste pro blatt druckt. jetzt möchte ich das mein makro überprüft ob in einer bestimmten zelle "-----" steht und wenn das der fall ist möchte ich das er alle zeilen von dem vorherigen seitenumbruch (zum beispiel zwischen liste 1 und 2) bis zum nächsten (hier dann der zwischen liste 2 und 3) alle zeilen ausblendet, also die ganze seite nicht druckt.
und es wäre sehr schön wenn du mir den code in meinem makro ergänzen könntest da ich wie gesagt herzlich wenig ahnung von sowas habe :(
danke schonmal :)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
08.10.2014, 17:27
(Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2014, 17:28 von schauan.)
Hallöchen, in welchen Zellen steht denn "-----" ? Also, erst mal wird Dein Makro recht langsam laufen, wenn es um viele Seiten geht. Das lassen wir aber erst mal so. Ich gehe jetzt davon aus: - dass der betreffende Inhalt auf jedem Blatt steht und dort in einer bestimmten Zelle. - dass es eine feste Anzahl Seiten gibt Das hab ich jetzt hier geschrieben, ist also nicht getestet. Damit wird jede Seite als einzelner Druckauftrag gesendet. Man könnte auch erst die Seitennummern "einsammeln" und dann als einen Druckauftrag rausschicken. Code: Sub Drucken() Dim iRowL As Integer, iRow As Integer 'Array fuer Druckbedingung Dim arrPrint 'Array fuer Druckbedingung fuellen - hier die Zellen jedes Blattes definieren arrPrint = Array("B6","B64","B122") 'Nummer der zuletzt genutzten Zeile anhand Spalte C feststellen iRowL = Cells(Rows.Count, 3).End(xlUp).Row 'Schleife bis zur letzten genutzten Zeile For iRow = 1 To iRowL 'Wenn Zellwert 0, dann If Cells(iRow, 3).Value = "0" Then 'Zeile ausblenden Rows(iRow).Hidden = True 'Ende Wenn Zellwert 0, dann End If 'Ende Schleife bis zur letzten genutzten Zeile Next iRow 'ActiveSheet.PrintPreview 'Schleife ueber alle Blaetter anhand Zellen mit Druckbedingung For iRow = 1 To Ubound(arrPrint) 'Wenn Druckbedingung <> "-----", dann if range(arrprint(iRow)) <> "-----" Then 'Seite drucken ActiveWindow.SelectedSheets.PrintOut From:=iRow, To:=iRow, Copies:=1, Collate:=True 'Ende Wenn Druckbedingung <> "-----", dann End If 'Ende Schleife ueber alle Blaetter anhand Zellen mit Druckbedingung Next iRow Rows.Hidden = False End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 06.10.2014
Version(en): 07
08.10.2014, 18:20
(Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2014, 18:25 von plau.)
das sieht recht plausiebel aus aber könntest du mir das vlt so schreiben das er mir das nicht direkt druckt sondern erstmal eine druckvorschauf öffnet? dann kann ich gucken ob die richtigen sachen drin sind :)
es sind "nur" 10 seiten also denke ich dauert es nicht allzulang
danke dir aber auf jeden fall schonmal!
Registriert seit: 11.04.2014
Version(en): Office 2007
08.10.2014, 18:56
(Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2014, 19:03 von Steffl.)
Hallo, ersetze folgende Codezeile Code: ActiveWindow.SelectedSheets.PrintOut From:=iRow, To:=iRow, Copies:=1, Collate:=True
durch diese Code: ActiveWindow.SelectedSheets.PrintOut From:=iRow, To:=iRow, Copies:=1, Preview:=True, Collate:=True
dann öffnet sich die Druckvorschau.
Gruß Stefan Win 10 / Office 2016
Registriert seit: 06.10.2014
Version(en): 07
hallo
also ich habe das makro jetzt so übernommen, aber der zeigt mir in der druckvorschau nur liste nr 3 an obwohl der die eig ausblenden sollte (weil ----- drin steht) und 1 und 4 sollte er auflisten, die kommen aber nicht
Registriert seit: 06.10.2014
Version(en): 07
08.10.2014, 19:27
(Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2014, 19:29 von plau.)
also ich habe jetztnochmal ein bisschen getestet und es sieht so aus das der mit den seiten nicht so ganz klar kommt...
der zeigt mir liste 4 nur an wenn in 5 kein ----- steht... also wenn ich in liste 4 was stehen habe und in 5 nicht bzw in 5 die ----- stehen druckt der mir liste 4 nicht...
habe überlegt ob ich noch einen seitenumbruch einfügen soll aber ich kann vor der ersten zeile keinen seitenumbruch einfügen...
und im moment öffnet der mir für jede liste eine eigene druckvorschau... kann man das ändern das der alle in einer vorschau anzeig und ich mit "nächster seite" durchklicken kann? :)
dake euch vielmals für eure hilfen!
|