Hallo zusammen,
meistens bin ich ja in den PHP-Foren etc. unterwegs, aber heute hat es mich nach Office verschlagen.
Ich arbeite an einem kleinen VBA-Programm, bin da auch gut weiter gekommen, nur es ist etwas "unelegant" gelöst.
Eventuell hat die Community ja eine bessere Lösung für mein Problemchen.
Folgender Sachverhalt:
Ich habe eine Excel datei in der es 7 Spalten gibt, nennen wir sie einfach Spalte 1-7.
| Spalte 1 | Spalte 2 | Spalte 3 | Spalte 4 | Spalte 5 | Spalte 6 | Spalte 7 |
---------------------------------------------------------------------------------------
| Wert 1.1 | Wert 2.1 | Wert 3.1 | Wert 4.1 | Wert 5.1 | Wert 6.1 | Wert 7.1 |
| Wert 1.2 | Wert 2.2 | Wert 3.2 | Wert 4.1 | Wert 5.2 | Wert 6.2 | Wert 7.2 |
| Wert 1.3 | Wert 2.3 | Wert 3.3 | Wert 4.1 | Wert 5.3 | Wert 6.3 |///////////|
| Wert 1.4 | Wert 2.4 | Wert 3.4 |///////////| Wert 5.4 | Wert 6.4 |///////////|
| Wert 1.5 | Wert 2.5 | Wert 3.5 |///////////| Wert 5.5 |///////////|///////////|
| Wert 1.6 | Wert 2.1 | Wert 3.6 |///////////| Wert 5.6 |///////////|///////////|
| Wert 1.7 |///////////| Wert 3.7 |///////////| Wert 5.7 |///////////|///////////|
| Wert 1.8 |///////////|///////////|///////////| Wert 5.8 |///////////|///////////|
So, die Darstellung nur zum Verständnis. Die //////////// sind nur als Platzhalter für die Formatierung der Tabelle gedacht, stellt euch das als leeres Feld vor.
Nun habe ich in VBA eine UserForm1 die eine ComboBox1 enthält, diese lädt die oberste Zeile, so das dort Spalte 1-7 auswählbar sind.
Je nach Auswahl wird die Spalte dann abgefragt und in eine ListBox1 eingefügt. Also wähle ich Spalte 5, werden alle Werte der Spalte 5 in die Listbox transferiert.
Funktioniert wunderbar.
Jetzt hat das VBA-Programm noch eine Schaltfläche "Drucken", wenn ich diese Drücke werden alle Werte der Listbox ausgedruckt. Jeder Wert auf eine Extra DinA4 Seite.
Denn, ich muss eine fertig ausgedruckte Seite, quasi ein reales Papierformular um die Werte aus Spalte X ergänzen:
Das klappt auch soweit indem ich ein Sheet genommen habe, dort ein Textfeld positioniert habe an der Stelle des Blattpapiers wo der Wert eingefügt werden soll.
Nun arbeitet das VBA-Programm eine Schleife so oft wie die ListBox1 einträge hat ab und fügt automatisch den Wert in die TextBox im Sheet ein und druckt es aus.
Funktioniert auch, aber wenn die Spalte 120 Werte enthält werden an den Drucker 120 Druckaufträge gesendet. Daher meine Frage nach dem Verbesserungspotential.
Wäre es möglich Excel zu sagen:
Trage den Wert ein, mache einen Seitenumbruch, trage auf der neuen Seite den nächsten Wert ein usw, bis die ListBox abgearbeitet ist. UND DANACH fange erst an zu drucken. Sprich, Sammle alle Blätter in einem Sheet zusammen und jage es als ein Druckauftrag los.
Hoffe ich habe mich verständlich ausgedrückt wie ich das meine
P.S.: Ja, ich weiß das es die möglichkeit des Serienbriefes durch Word gibt, möchte aber tatsächlich direkt aus Excel heraus drucken.
meistens bin ich ja in den PHP-Foren etc. unterwegs, aber heute hat es mich nach Office verschlagen.
Ich arbeite an einem kleinen VBA-Programm, bin da auch gut weiter gekommen, nur es ist etwas "unelegant" gelöst.
Eventuell hat die Community ja eine bessere Lösung für mein Problemchen.
Folgender Sachverhalt:
Ich habe eine Excel datei in der es 7 Spalten gibt, nennen wir sie einfach Spalte 1-7.
| Spalte 1 | Spalte 2 | Spalte 3 | Spalte 4 | Spalte 5 | Spalte 6 | Spalte 7 |
---------------------------------------------------------------------------------------
| Wert 1.1 | Wert 2.1 | Wert 3.1 | Wert 4.1 | Wert 5.1 | Wert 6.1 | Wert 7.1 |
| Wert 1.2 | Wert 2.2 | Wert 3.2 | Wert 4.1 | Wert 5.2 | Wert 6.2 | Wert 7.2 |
| Wert 1.3 | Wert 2.3 | Wert 3.3 | Wert 4.1 | Wert 5.3 | Wert 6.3 |///////////|
| Wert 1.4 | Wert 2.4 | Wert 3.4 |///////////| Wert 5.4 | Wert 6.4 |///////////|
| Wert 1.5 | Wert 2.5 | Wert 3.5 |///////////| Wert 5.5 |///////////|///////////|
| Wert 1.6 | Wert 2.1 | Wert 3.6 |///////////| Wert 5.6 |///////////|///////////|
| Wert 1.7 |///////////| Wert 3.7 |///////////| Wert 5.7 |///////////|///////////|
| Wert 1.8 |///////////|///////////|///////////| Wert 5.8 |///////////|///////////|
So, die Darstellung nur zum Verständnis. Die //////////// sind nur als Platzhalter für die Formatierung der Tabelle gedacht, stellt euch das als leeres Feld vor.
Nun habe ich in VBA eine UserForm1 die eine ComboBox1 enthält, diese lädt die oberste Zeile, so das dort Spalte 1-7 auswählbar sind.
Je nach Auswahl wird die Spalte dann abgefragt und in eine ListBox1 eingefügt. Also wähle ich Spalte 5, werden alle Werte der Spalte 5 in die Listbox transferiert.
Funktioniert wunderbar.
Jetzt hat das VBA-Programm noch eine Schaltfläche "Drucken", wenn ich diese Drücke werden alle Werte der Listbox ausgedruckt. Jeder Wert auf eine Extra DinA4 Seite.
Denn, ich muss eine fertig ausgedruckte Seite, quasi ein reales Papierformular um die Werte aus Spalte X ergänzen:
Das klappt auch soweit indem ich ein Sheet genommen habe, dort ein Textfeld positioniert habe an der Stelle des Blattpapiers wo der Wert eingefügt werden soll.
Nun arbeitet das VBA-Programm eine Schleife so oft wie die ListBox1 einträge hat ab und fügt automatisch den Wert in die TextBox im Sheet ein und druckt es aus.
Funktioniert auch, aber wenn die Spalte 120 Werte enthält werden an den Drucker 120 Druckaufträge gesendet. Daher meine Frage nach dem Verbesserungspotential.
Wäre es möglich Excel zu sagen:
Trage den Wert ein, mache einen Seitenumbruch, trage auf der neuen Seite den nächsten Wert ein usw, bis die ListBox abgearbeitet ist. UND DANACH fange erst an zu drucken. Sprich, Sammle alle Blätter in einem Sheet zusammen und jage es als ein Druckauftrag los.
Hoffe ich habe mich verständlich ausgedrückt wie ich das meine

P.S.: Ja, ich weiß das es die möglichkeit des Serienbriefes durch Word gibt, möchte aber tatsächlich direkt aus Excel heraus drucken.
Zuletzt bearbeitet: