Tabellen fortlaufend auf einer Seite drucken

Hi,

folgendes Problem habe ich beim Drucken und kann mir nicht vorstellen, dass Excel das nicht kann:

Ich habe 2 Excel-Tabellen mit ungleicher Anzahl von Spalten. Aus diesem Grund können sie auf einem Worksheet nicht untereinander stehen sondern sind nebeneinander plaziert. Auch die Möglichkeit Excel-Zellen miteinander zu verbinden hilft mir nicht weiter, da die Spaltenbreiten beider Tabellen zu unterschiedlich formatiert sein müssen.
Nun müssen aber beide Tabellen auf einer Seite untereinander ausgedruckt werden, da die erste Tabelle Kopfdaten der zweiten Tabelle enthält. (Die Kopfzeilenfunktion bringt mich auch nicht weiter, da in der ersten Tabelle Berechnungen vorgenommen werden müssen).
Ich habe schon sämtliche Einstellung im Menü “Seite einrichten“ ausprobiert, aber ich krieg’s einfach nicht hin, dass Excel mir die beiden Tabellen fortlaufend hintereinander auf einer Seite ausdruckt !!!
Ich hab’ auch schon beide Tabellen auf getrennten Worksheets plaziert, Druckbereiche jeweils festgelegt usw. … auch Fehlanzeige.
Vielleicht geht’s ja mit VBA-Code??? Ich hoffe, jemand von euch hat ’ne Idee, bin für jeden Hinweis dankbar!

Viele Grüße

Gundel

Moin Gundel,

schwieriges Problem… hast du schon mal an ein Druck-Management-Tool, wie FinePrint gedacht? Das klemmt sich zwischen Anwendung und Drucker. Damit kannst du mehrere Seiten auf einem Blatt drucken, drehen, überflüssiges löschen, …
Schau hier:
http://www.fineprint.com
oder auf deutsch:
http://www.context-gmbh.de/index.asp

Cheers!
Hawky

Hallo Gundel,

Ich habe 2 Excel-Tabellen mit ungleicher Anzahl von Spalten.
Aus diesem Grund können sie auf einem Worksheet nicht
untereinander stehen sondern sind nebeneinander plaziert.

warum das denn, excel verbietet nicht ne 3spaltige unter ne 5spaltige Tabelle zu setzen.

die Möglichkeit Excel-Zellen miteinander zu verbinden hilft
mir nicht weiter, da die Spaltenbreiten beider Tabellen zu
unterschiedlich formatiert sein müssen.

mag sein

Nun müssen aber beide Tabellen auf einer Seite untereinander
ausgedruckt werden, da die erste Tabelle Kopfdaten der zweiten
Tabelle enthält.

warum das denn?, vor dem Druck sind doch evtl Kopfdaten schon in tab1?
Magst du mal ne beispieltab hier posten?
zB wie die Folgende:

 A B C D E F G 
1 kunde preis anzahl summe kunde2 telefonnummer 
2 müller 12 3 36 held 0123 
3 schulze 8 2 16 ich sagichnicht
4 meier 6 1,5 9 du auchnicht
5 frieda 120 0,2 24 
6 gates ,7 3 2,1

Bei diesem Beispiel sehe ich es (ungetestet) als einfach an, folgenden Ausdruck zu erreichen:

kunde preis anzahl summe 
müller 12 3 36 
schulze 8 2 16 
meier 6 1,5 9 
frieda 120 0,2 24 
gates ,7 3 2,1

kunde2 telefonnummer 
held 0123 
ich sagichnicht
du auchnicht

Poste halt mal eine kleine Beispieltabelle und BITTE vergess nicht vor der tabelle

 und nach der tabelle 

zu schreiben, sonst sind die Leerzeichen weg und

meier 6 1,5 9 du auchnicht

sieht so aus:
meier 6 1,5 9 du auchnicht
Gruß
Reinhard

Hallo Reinhard,

warum das denn, excel verbietet nicht ne 3spaltige unter ne
5spaltige Tabelle zu setzen.

Das stimmt, das Problem sind die unterschiedlichen Spaltenbreiten.

Magst du mal ne beispieltab hier posten?

Hier kommen die Beispieltabellen:

Tabelle1 (einzeilig):
 A B C D E F G H I J K
1 Identnummer\_1: 1 2 3 4 5 6 7 8 Identnummer\_2: 123 456

Tabelle2 (Anzahl Zeilen variabel):
 L M N O P
2 Kunde Preis Anzahl Summe Telefon-Nummer
3 Müller-Lüdenscheid 10 2 20 12345678
4 Meier 1 345 345 34556
5 Schulze 1000 10 10000 - 


    
    
    deshalb stehen beide Tabellen nebeneinander auf einem Blatt.
    Allerdings um eine Zeile versetzt, da Zeile 1 und 2
    unterschiedliche Zeilenhöhen haben müssen. 
    
    
    
    > A B C D E F G
    > 1 kunde preis anzahl summe kunde2 telefonnummer
    > 2 müller 12 3 36 held 0123
    > 3 schulze 8 2 16 ich sagichnicht
    > 4 meier 6 1,5 9 du auchnicht
    > 5 frieda 120 0,2 24
    > 6 gates ,7 3 2,1
    >     
    > Bei diesem Beispiel sehe ich es (ungetestet) als einfach an,
    > folgenden Ausdruck zu erreichen:
    >     
    > kunde preis anzahl summe
    > müller 12 3 36
    > schulze 8 2 16
    > meier 6 1,5 9
    > frieda 120 0,2 24
    > gates ,7 3 2,1
    >     
    > kunde2 telefonnummer
    > held 0123
    > ich sagichnicht
    > du auchnicht
    
    
    Wenn das mit meinen Beispieltabellen möglich ist (also Tabelle1 vor Tabelle2 fortlaufend auf einer Seite auszudrucken), wäre mein Problem gelöst. Ich konnte mir auch nicht vorstellen, dass das in Excel nicht geht, hab's aber selbst nicht rausgefunden. 
    Jetzt mußt du mir nur noch sagen wie man's macht. Warte schon gespannt darauf!
    
    Viele Grüße
    Gundel

Wenn das mit meinen Beispieltabellen möglich ist (also
Tabelle1 vor Tabelle2 fortlaufend auf einer Seite
auszudrucken), wäre mein Problem gelöst. Ich konnte mir auch
nicht vorstellen, dass das in Excel nicht geht, hab’s aber
selbst nicht rausgefunden.
Jetzt mußt du mir nur noch sagen wie man’s macht. Warte schon
gespannt darauf!

Hi Gundel,
hab da wohl das mit den Spalten unterschätzt *gg*
Zunächst es gibt da wohl ein Programm Fineprint, das dieses feature haben soll, also mehrere Bereiche auf eine Seite.
Zweitens könnte man auch als workaround Tab1 nach Word und dann Tab2 nach Word, dort ausdrucken, ginge auch.

Oder du nimmst untenstehendes Makro :smile:
Makro erwartet in Tabellenblatt1 (Tabelle1) die Tab1 in A1:K1, Tab2 in Spalten L-P, die druckfertige Gesamttab steht dann im Tabellenblatt2 (Tabelle2)
Mit Ansicht–Symboleisten–Formular kannste in Tabelle1 ein Button erstelleen und dem den Makro zuweisen.
Gruß
Reinhard

Sub Gundel()
For Each rngAct In Sheets("Tabelle2").UsedRange
 If rngAct.MergeCells Then rngAct.MergeArea.UnMerge
Next rngAct
Sheets("Tabelle2").Range("A1:IV65536").ClearContents
Sheets("Tabelle2").Select
For Each zell In Sheets("Tabelle2").Range(Cells(1, 1), Cells(1, 256))
 zell.ColumnWidth = 10
Next zell
Sheets("Tabelle1").Select
Anzahl = Cells(Rows.Count, 12).End(xlUp).Row - 1
With Worksheets("Tabelle2")
 Worksheets("Tabelle1").Range(Cells(2, 12), Cells(1 + Anzahl, 16)).Copy \_
 Destination:=.Cells(3, 1)
 Worksheets("Tabelle1").Range(Cells(1, 1), Cells(1, 11)).Copy \_
 Destination:=.Cells(1, 1)

End With
Min = 100
L1 = 0
L2 = 0
Dim LL1(11) As Integer
Dim LL2(500) As Integer
z = 1
Sheets("Tabelle1").Select
For Each zell In Sheets("Tabelle1").Range(Cells(1, 1), Cells(1, 11))
 zell.ColumnWidth = Int(zell.ColumnWidth)
 If Min \> zell.ColumnWidth Then Min = zell.ColumnWidth
 L1 = L1 + zell.ColumnWidth
 LL1(z) = zell.ColumnWidth
 z = z + 1
Next

z = 1
For Each zell In Sheets("Tabelle1").Range(Cells(2, 12), Cells(2, 16))
 zell.ColumnWidth = Int(zell.ColumnWidth)
 If Min \> zell.ColumnWidth Then Min = zell.ColumnWidth
 L2 = L2 + zell.ColumnWidth
 LL2(z) = zell.ColumnWidth
 z = z + 1
Next
Min = 1
L = L1
If L2 \> L1 Then L = L2
Sheets("Tabelle2").Select
With Worksheets("Tabelle2")
 .Range(Cells(1, 1), Cells(1, L)).ColumnWidth = Min
 pos = L1
 For n = 11 To 2 Step -1
 .Cells(1, n).Cut Destination:=.Cells(1, pos - LL1(n) + 1)
 pos = pos - LL1(n)
 Next n
 pos = L2
 For n = 5 To 2 Step -1
 .Range(Cells(3, n), Cells(2 + Anzahl, n)).Cut Destination:=.Cells(3, pos - LL2(n) + 1)
 pos = pos - LL2(n)
 Next n
 pos = 1
 For n = 1 To 11
 .Range(Cells(1, pos), Cells(1, pos + LL1(n) - 1)).MergeCells = True
 pos = pos + LL1(n)
 Next n
 If L2 \> L1 Then .Range(Cells(1, pos), Cells(1, L)).MergeCells = True
 .Range(Cells(2, 1), Cells(2, L)).MergeCells = True
 For m = 3 To 2 + Anzahl
 pos = 1
 For n = 1 To 5
 .Range(Cells(m, pos), Cells(m, pos + LL2(n) - 1)).MergeCells = True
 pos = pos + LL2(n)
 Next n
 If L1 \> L2 Then .Range(Cells(m, pos), Cells(m, L)).MergeCells = True
 Next m
 For n = m To m + 500
 .Range(Cells(n, 1), Cells(n, L)).MergeCells = True
 Next n
End With
End Sub

Hi Hawky,
danke für den Hinweis. Hab’ mir gerade die Shareware-Version von FinePrint runtergeladen. Prima Programm, aber leider klappt’s damit auch nicht!
Falls du weißt, welche Einstellungen man in FinePrint vornehmen muß, um zwei Excel-Tabellen hintereinander auf einer Seite auszudrucken wär’s nett, wenn du mir noch mal auf die Sprünge helfen könntest.

Tschöhö und danke noch mal
Gundel

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Reinhard,

prima Makro, aber das bringt mir leider die meisten Formatierungen(Rahmen und Füllfarben) meiner Tabellen durcheinander…

Zunächst es gibt da wohl ein Programm Fineprint, das dieses
feature haben soll, also mehrere Bereiche auf eine Seite.

damit hab ich’s leider auch nicht hingekriegt…

Zweitens könnte man auch als workaround Tab1 nach Word und
dann Tab2 nach Word, dort ausdrucken, ginge auch.

das funktioniert problemlos und so mach ich’s jetzt auch!!!

Ach ja, und jetzt noch ne Frage von VBA-Anfänger zu VBA-Profi.
In deinem Makro steht:

For Each zell In Sheets(„Tabelle2“).Range(Cells(1, 1),
Cells(1, 256))
zell.ColumnWidth = 10
Next zell

ich hätte das so geschrieben:
Range(Columns(1), Columns(256)).ColumnWidth = 10

Das läuft schneller, aber vielleicht ist das ja aus irgendeinem Grund unkorrekt, oder funktioniert unter bestimmten Umständen nicht? Bin immer dankbar für nützliche Tipps!

Ansonsten noch mal vielen Dank für alle Hinweise
Gruß Gundel

prima Makro, aber das bringt mir leider die meisten
Formatierungen(Rahmen und Füllfarben) meiner Tabellen
durcheinander…

Danke,ja, einige kleinere Features hab ich weggelassen *gg*

For Each zell In Sheets(„Tabelle2“).Range(Cells(1, 1),
Cells(1, 256))
zell.ColumnWidth = 10
Next zell

ich hätte das so geschrieben:
Range(Columns(1), Columns(256)).ColumnWidth = 10

Das läuft schneller, aber vielleicht ist das ja aus
irgendeinem Grund unkorrekt, oder funktioniert unter
bestimmten Umständen nicht? Bin immer dankbar für nützliche
Tipps!

Hallo Gundel,
bin selbst Beginner und nehm so Sachen zum Üben. Die Erfahrung wann dies nicht klappen sollte hab ich nicht. Bin in Excel/VBA immer überrascht was da manchmal nicht klappt und dann erstaunt wenn wiederum anderes so einfach geht.
Da ich leider oder auch zum Glück nicht am Pc arbeiten muss, fehlt mir auch der kurze Austausch mit anderen bei manchmal ganz banalen Fragen zur Syntax oder so Fragen.
Habe am Anfang von VBA wochenlang gebraucht um herauszufinden dass die Hilfecodes nicht laufen weil man zB worksheets(„Sheet1“) in worksheets(„Tabelle1“) wandeln muss usw.
Bei Formula das gleiche denglisch-Problem, naja wiederum nach einiger Zeit stiess ich auf FormulaLocal…
Achja,
cells.columnwidth = 10
geht auch (Konnte es nicht lassen rumzuprobieren):smile:
Gruß
Reinhard
ps: von Anfänger zu Anfänger, wie ging das nochmal dass man ganze Codebereiche auf Apostroph setzt? Habs vergessen und es ist wohl wiedermal inder Hilfe an andrer Stelle, als da wo ich suche versteckt.

Hi Reinhard,

bin selbst Beginner und nehm so Sachen zum Üben.

Na na, mal nicht untertreiben… oder willst du mich total frustrieren :wink: Für so’n Makro hätt’ ich wahrscheinlich 'ne Woche gebraucht!

ps: von Anfänger zu Anfänger, wie ging das nochmal dass man
ganze Codebereiche auf Apostroph setzt? Habs vergessen und es
ist wohl wiedermal inder Hilfe an andrer Stelle, als da wo ich
suche versteckt.

Mit rechter Maus auf 'ne Symbolleiste zeigen, dann entweder:
Anpassen / Befehle / Bearbeiten / Block auskommentieren (auf vorhandene Symbolleiste ziehen)
oder:
Symbolleiste „Bearbeiten“ anhaken, da steht auch gleich der Button „Auskommentierung aufheben“

Gruß
Gundel

Nun müssen aber beide Tabellen auf einer Seite untereinander
ausgedruckt werden, da die erste Tabelle Kopfdaten der zweiten
Tabelle enthält.

Hi,
probier doch mal folgendes:
Unter Extras Anpassen suchst Du in der Kategorie Extras die Schaltfläche „Kamera“. Die ziehst Du in ein Menü.
Dann markierst Du den entsprechenden, klickst auf Kamera und gehst in ein neues Tabellenblatt. Dort ziehst Du ein Fenster auf und darin erscheint ein „Foto“ des ursprünglichen Zellbereiches.
Das machst Du mit beiden Bereichen, formatierst die „Fotos“ ohne Rahmen, stellst evtl. in der ursprünglichen Tabelle noch die Gitternetzlinien aus und druckst das Tabellenblatt mit den „Fotos“.
Müsste dann so aussehen, wie Du dirs vorstellst.
Wenn Du in der ursprünglichen Tabelle was veränderst, wirds automatisch mit übernommen, sogar die Spuren vom Detektiv.

Gruß Jack

Dankeschön

Symbolleiste „Bearbeiten“ anhaken, da steht auch gleich der
Button „Auskommentierung aufheben“

Hi Gundel,
das meinte ich mit mal kurz austauschen, denn was sagt der Antwortassistent der Hilfe zu „block auskommentieren“ ?
Nix :frowning:
Naja dafür ist die Liste der integrierten Dialogfeldargumente sehr gross und lang, leider steht nicht so genau dabei für was ich das brauchen könnte.
So Gundel, langsam werden wir hier zu offtopic.
Noch ein schönes WE
Tschüß
Reinhard

Hi Jack,

Das funktioniert prima!
Wäre ich nie drauf gekommen. Wer weiß, welche Features sich noch in den Tiefen der Menüs verbergen.
1000 Dank!

Gruß
Gundel

starker Tipp, Sternchen ausgeb :smile:, merci o.w.T.
o.w.T.=ohne weiteren Text :smile: