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
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