02.03.2015, 11:01 (Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2015, 11:02 von maine-coon.)
Der Titel ist etwas unglücklich formuliert. Aber ich weiß nicht, wie ich es anderes beschreiben soll. Hier auf der Plattform scheint ne Menge verändert worden zu sein. Eigentlich wollte ich hier ein paar ausgelesene Zeilen (Von Beverly's Excel Inn Version 5.30) mal darstellen, aber die Vorschau stellt das so riesig dar.
Ich versuche es mal mit Worten zu erklären.
Ich habe ca. 10000 Zeilen mit 2 Spalten. Links die Artikelnummer und rechts der Preis. Jetzt habe ich mal die Seitengröße festgelegt auf 50 Zeilen.
Anschließend habe ich die Zeilen 51 bis 100 ausgeschnitten und oben in Spalte C und D eingefügt. Danach die Zeilen 101 bis 150 ausgeschnitten und oben in Spalte E und F eingefügt. Danach die Zeilen 151 bis 200 ausgeschnitten und oben in Spalte G und H eingefügt. Danach die Zeilen 201 bis 250 ausgeschnitten und oben in Spalte I und J eingefügt. So, damit ist eine Seite DIN A4 komplett.
Exakt so weiter habe ich die nächsten Seiten fertiggestellt. War ein wenig zeitlicher Aufwand, aber ist ja einmalig......so hoffe ich es.....
Denn nun kommt meine Frage.
Annahme, ich muss ein paar Artikelnummern mit Preis einfügen, oder gar löschen. Und diese Artikelnummern sind irgendwo mitten drin. Jetzt ist meine ganze Arbeit diese vielen Spalten zu kreieren wieder hinfällig.
Wenn ich jetzt irgendwo mittendrin eine Zelle einfüge für Artikelnummer und eine Zelle daneben einfüge für den Preis, dann würden alle zuvor von mir manuell gesetzten Spalten nicht mehr stimmen. Dann wäre alles umsonst gewesen.
Aber vielleicht gibt es dafür schon lange eine Lösung? Vermutlich eine vorhanden VBA Routine?
Ich hoffe, ich habe es verständlich rübergebracht. Vielen Dank für Infos und Hilfen dazu.
mit diesem Makro könntest Du Deine gesamte Liste ausdrucken, ohne Sie vorher verteilen zu müssen:
Code:
Option Explicit
Sub drucken() Dim loA As Long Dim loB As Long Dim loC As Long For loA = 0 To 7 loB = Int((loA Mod 4) / 4) loC = (loA Mod 4) * 2 Range(Cells(loA * 50 + 1, 1), Cells(loA * 50 + 50, 2)).Copy Destination:=Cells(1 + loB * 200, 17 + loC) If loA Mod 4 = 3 Then Range(Cells(1 + loB * 200, 17), Cells(50 + loB * 200, 24)).Select Selection.PrintOut Range("O:Z").Clear End If Next
End Sub
Das Einzige, was Du machen mußt, ist den Bereich Q bis X auf eine Seite einrichten und die Zeilenhöhe anzupassen. Evtl noch Kopfzeilen einarbeiten.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
mit diesem Makro könntest Du Deine gesamte Liste ausdrucken, ohne Sie vorher verteilen zu müssen:
Code:
Option Explicit
Sub drucken() Dim loA As Long Dim loB As Long Dim loC As Long For loA = 0 To 7 loB = Int((loA Mod 4) / 4) loC = (loA Mod 4) * 2 Range(Cells(loA * 50 + 1, 1), Cells(loA * 50 + 50, 2)).Copy Destination:=Cells(1 + loB * 200, 17 + loC) If loA Mod 4 = 3 Then Range(Cells(1 + loB * 200, 17), Cells(50 + loB * 200, 24)).Select Selection.PrintOut Range("O:Z").Clear End If Next
End Sub
Das Einzige, was Du machen mußt, ist den Bereich Q bis X auf eine Seite einrichten und die Zeilenhöhe anzupassen. Evtl noch Kopfzeilen einarbeiten.
Hallo Edgar,
ich danke dir für die Antwort. Ich habe zwar ein wenig VBA Kenntnisse, aber mit Sicherheit nicht ausreichend, um das alles zu verstehen.
Wenn ich die Seite formatiere und alle Ränder auf 0 stelle, die Spaltenbreite auf 9 gebe, dann schaffe ich 10 Spalten pro Blatt hinzubekommen.
Diese Formatierungs-Vorgaben ins VBA vorher einzubauen, sollte ich hinbekommen. Aber ich kann die ganzen Variablen nicht einordnen.
Außerdem ist ein sofortiger Ausdruck nicht gut. Besser wäre, wenn ich eine Seitenansicht hätte und dann drucke.
Kannst du mir mal die einzelnen Variablen und Fixwerte näher erklären? Dann kann ich die entsprechend meinem Ausdruck anpassen.
ich habe die Tabelle von Uwe mal mit den Formeln erweitert um alle 10000 Zeilen zu erfassen. Jetzt dachte ich, dass in der Formel die Zahl 50 für die Anzahl der Zeilen steht, die ich pro Seite vorgegeben hatte. Dem ist scheinbar nicht so.
Ich habe die DIN A4 Seite mal formatiert. Je weniger Seiten gedruckt werden, desto besser.
Aber als ich aus der 50 in der Formel mal eine 65 machte, passte da nichts mehr. Denn mein Ziel wäre natürlich im Blatt 3 oben in Zelle A1 einen Wert einzugeben, der dann in meiner Formel die Anzahl der Zeilen vorgibt.
Ach ja, die Überschriften sind auch ohne Bedeutung. Lösche ich die erste Zeile, ist die Formel nicht mehr gültig.
jetzt bist Du schon Jahre mit Excel und im Forum aktiv, so langsam solltest Du die Formelauswertung kennen, um mal nachzuvollziehen, was die Formeln machen! Du darfst nicht die Überschrift löschen, sondern mußt die Formeln aus Zeile 2 ausschneiden und in Zeile 1 einfügen.
jetzt bist Du schon Jahre mit Excel und im Forum aktiv, so langsam solltest Du die Formelauswertung kennen, um mal nachzuvollziehen, was die Formeln machen! Du darfst nicht die Überschrift löschen, sondern mußt die Formeln aus Zeile 2 ausschneiden und in Zeile 1 einfügen.
jetzt bist Du schon Jahre mit Excel und im Forum aktiv, so langsam solltest Du die Formelauswertung kennen, um mal nachzuvollziehen, was die Formeln machen! Du darfst nicht die Überschrift löschen, sondern mußt die Formeln aus Zeile 2 ausschneiden und in Zeile 1 einfügen.