Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
536to540
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

hilfe für hilfe einfach ;-)

hilfe für hilfe einfach ;-)
28.12.2004 20:14:36
NE
Hallo Leute,
im Rahmen dieses Threads: http://www.excel-center.de/foren/read.php?2,5749
dessen Problematik ich selber sehr intressant fand,
hats mich halt bissel 'gerissen' und ich dacht' mal mögliche Lösungen antesten...
Mein Ansatz:
Hab einfach ein neues Blatt genommen, A1:AE2 einigermassen kenntlich gefüllt
[also 2 Zeilen a' 31 Spalten] und nun mal versucht, das gegebene oldArr [A1:AE2]
in ein newArr umzuschaufeln mit hm, newR Zeilen und Columns_per_pageBreak einfach;-)
Aber sämtliche logischen Geister scheinen mich heute nicht küssen zu wollen,
bin aber der Meinung, das muss doch irgendwie gehen!;-)
Bitte schauts euch mal an, jemand 'ne zündende [evtl. auch ganz andre/bessre] Idee?
lg Nancy
--

Sub devil_inside()
Dim usedC%, usedR&, ColsPerPage%, oldArr
Dim newR&, r&, c%, x&
With ActiveSheet
If .VPageBreaks.Count > 1 Then
'irgendwie versuche ich hier die usedColumns durch die Anzahl
'der vertikalen Zeilenumbruche zu teilen und das Array neu umzuschichten
oldArr = .UsedRange
usedR = .UsedRange.Rows.Count
usedC = .UsedRange.Columns.Count
ColsPerPage = Fix(usedC / .VPageBreaks.Count)
newR = usedR * .VPageBreaks.Count
ReDim newArr(1 To newR + 1, 1 To ColsPerPage)
'ab hier wirds gruselig ;-)
For r = 1 To newR Step usedR
For c = 1 To usedC Step ColsPerPage
newArr(r, c) = oldArr(r, c)
newArr(r + 1, c) = oldArr
Next
Next
End If
'alles was nun folgt is pillepalle;-)
'das bekommt man dann ja hin, wenn man [frau auch]
'das temporäre Array hat ;-)
'   Sheets.Add
'   .Range(Cells(1, 1), Cells(UBound(newArr(), 1), UBound(newArr(), 2))) = newArr
'   .PrintOut
'   Application.DisplayAlerts = 0
'   .Delete
'   Application.DisplayAlerts = 1
End With
End 

Sub

		

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wenige Zeilen - Viele Spalten - Druck auf 1 Blatt
Beate
Hallo Nancy,
ich habe den Thread auch gesehen, deinen Code mal wieder probelaufen lassen und nun springt der Debugger hier an:
newArr(r, c) = oldArr(r, c)
Meldung: Laufzeitfehler '9' - Index außerhalb des gültigen Bereichs
----------------------------
Ich habe es mal so gelöst (auf die Schnelle durch Aufzeichung und Nachbearbeitung, nicht sehr elegant), ist aber nicht dynamisch, was die Spaltenzahl betrifft:
Im Codefenster diese Arbeitsmappe:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.ScreenUpdating = False
Range("A4").Select
ActiveCell.FormulaR1C1 = "=R[62]C[9]"
ActiveCell.FormulaR1C1 = "=R[-3]C[9]"
Range("A4:I4").FillRight
Range("A4:I5").FillDown
Range("A7").Select
ActiveCell.FormulaR1C1 = "=R[-6]C[18]"
Range("A7:I7").FillRight
Range("A7:I8").FillDown
Range("A10").Select
ActiveCell.FormulaR1C1 = "=R[-9]C[26]"
Range("A10:E10").FillRight
Range("A10:E11").FillDown
ActiveSheet.PageSetup.PrintArea = "$A$1:$I$11"
Application.OnTime Time + TimeSerial(0, 0, 1), "proc_reset"
End Sub

Und in einem Modul diesen Code:
Public Sub proc_reset()
Range("A3:I11").Clear
ActiveSheet.PageSetup.PrintArea = ""
Application.ScreenUpdating = True
Range("A1").Select
End Sub
Beispieldatei anbei - zum Testen reicht die Seitenansicht:
https://www.herber.de/bbs/user/15402.xls
Die Idee, wie man am Ende des Druckmakros wieder alles zurücksetzt, stammt von Nepumuk aus:
http://communities2.microsoft.com/communities/newsgroups/en-us/default.aspx?&lang=de&cr=DE&guid=&dg=microsoft.public.de.excel&p=1&tid=dc2c902e-9f95-4dc1-ae9f-64ac73691529
Ich setze in die Originalanfrage mal einen Link nach hier.
Gruß,
Beate
Anzeige
AW: Wenige Zeilen - Viele Spalten - Druck auf 1 Bl
29.12.2004 17:31:56
NE
Hallo Beate,
mal wieder vielen Dank für deine Hilfe und nettes Engagement.
Die Arraykiste war bissel ne doofe Idee, hab ich abgeschossen;-)
Der Link geht [z.Z.] wohl nicht, jedoch in dem Zusammenhang war mir nur:
Acticesheet.ResetAllPageBreaks
bekannt, wobei Nepumuk war damals auch nicht ganz unbeteiligt dran;-)
Jedenfalls, nochmal Danke für die Tips - und, wir lesen uns
liebe Grüsse Nancy

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige