Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
824to828
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
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Druckmenü zeigt nur 8

Druckmenü zeigt nur 8
09.12.2006 13:05:11
Walter
Hallo Guten Tag,
ich mal aus der Recherche eine UF mit einem Druckmenü kopiert und wollte dies
verwenden.
Habe gerade festgestellt es geht nur bis Seite 8, krieg das leider nicht hin das bis zum Ende, in diesem Fall 18 Seiten, man die "Spin-Button" scrollen kann.
Vielleicht blickt jemand durch, hier das Makro:
Option Explicit
Dim bolStart As Boolean

Private Sub CommandButton13_Click()
' Drucken
If Me.OptionButton1 = True Then
Dim s
Dim z As Long
Application.ScreenUpdating = False
Range("A5").Select
z = Range("A5").End(xlDown).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, 12)).Select
With ActiveSheet.PageSetup
.PrintArea = Range(Cells(6, 1), Cells(z, 12)).Address
.PrintTitleRows = "$3:$5"
.LeftFooter = "&8&P   von  &N"
.RightFooter = "&8 &F  / &A &D  &T"
.CenterHorizontally = True
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = False
End With
ActiveSheet.PrintOut Copies:=CLng(Me.SpinButton3.Value)
End If
If Me.OptionButton2 = True Then
ActiveSheet.PrintOut From:=CLng(Me.SpinButton1.Value), _
To:=CLng(Me.SpinButton2.Value), Copies:=CLng(Me.SpinButton3.Value)
End If
Application.ScreenUpdating = True
End Sub


Private Sub CommandButton1_Click()
End Sub


Private Sub CommandButton2_Click()
' Abbrechen
Unload Me
End Sub


Private Sub OptionButton1_Click()
Me.TextBox1.Value = "1"
Me.TextBox2.Value = "1"
End Sub


Private Sub OptionButton2_Click()
End Sub


Private Sub SpinButton1_Change()
If bolStart = False Then
If Me.SpinButton1.Value > Me.SpinButton2.Value Then Me.SpinButton1.Value = Me.SpinButton2.Value
Me.OptionButton2 = True
End If
Me.TextBox1 = Me.SpinButton1.Value
End Sub


Private Sub SpinButton2_Change()
If bolStart = False Then
If Me.SpinButton2.Value < Me.SpinButton1.Value Then Me.SpinButton2.Value = Me.SpinButton1.Value
Me.OptionButton2 = True
End If
Me.TextBox2 = Me.SpinButton2.Value
End Sub


Private Sub SpinButton3_Change()
Me.TextBox3 = Me.SpinButton3.Value
End Sub


Private Sub TextBox1_Change()
End Sub


Private Sub TextBox2_Change()
End Sub


Private Sub UserForm_Initialize()
Dim z
z = Range("A5").End(xlDown).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, 12)).Select
With ActiveSheet.PageSetup
.PrintArea = Range(Cells(6, 1), Cells(z, 12)).Address
.PrintTitleRows = "$3:$5"
End With
Range("A5").Select
bolStart = True
Me.TextBox1 = 1
Me.TextBox2 = CLng(ExecuteExcel4Macro("INDEX(GET.DOCUMENT(50),1)"))
Me.SpinButton1.Min = 1
Me.SpinButton1.Max = CLng(ExecuteExcel4Macro("INDEX(GET.DOCUMENT(50),1)"))
Me.SpinButton2.Min = 1
Me.SpinButton2.Max = CLng(ExecuteExcel4Macro("INDEX(GET.DOCUMENT(50),1)"))
Me.SpinButton3.Value = 1
Me.OptionButton1 = True
bolStart = False
End Sub

Ich würde mich freuen, wenn jemand duchblickt...
mfg Walter

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Die maximale Anzahl Seiten wird im Code
09.12.2006 13:13:43
NoNet
...durch diese Zeile berechnet :
Me.SpinButton2.Max = CLng(ExecuteExcel4Macro("INDEX(GET.DOCUMENT(50),1)"))
Diese Funktion berechnet immer die Seitenanzahl für das AKTUELLE Tabellenblatt !
Wenn nur 8 Seiten zu drucken sind, dann kann man das Drehfeld auch nur bis 8 einstellen.
Wie kommen Deine 18 Seiten zustande ? Druckst Du mehrere Tabellenblätter auf einmal ?
Dann müsste man die einzelnen Seitenanzahlen addieren...
Liebe Grüße,
NoNet
Hinweis
09.12.2006 13:25:56
Walter
Hallo NoNet,
hiermit wird der Druckbereich gesucht und festgelegt, in meinem Beispiel sind es
18 Seiten.
Habe gerade festgestllt, wenn ich in der Sheet selektiere und das Button in der Kopfleiste "Druckmbereich" klicke, werden die entsprechenden Seiten festgelegt.
Range("A5").Select
z = Range("A5").End(xlDown).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, 12)).Select
With ActiveSheet.PageSetup
.PrintArea = Range(Cells(6, 1), Cells(z, 12)).Address
gruß walter
Anzeige
warum offen ?
09.12.2006 16:50:33
Marion
...du hast eine komische Art auf Antworten einzugehen
Weil noch nicht gelöst...
09.12.2006 17:30:44
Walter
Hallo Marion,
leider noch nicht gelöst.
Der Druckbereich wird nur beim selektieren auf der Tabelle erreicht und dann in der Druckschau kann man die Anzahl der Seiten feststellen.
Mit meiner UF funktioniert das immer noch nicht, zeigt wieder 8 Seiten an obwohl es
18 Seiten sind.
mfg Walter
Glaub ich dir....
09.12.2006 17:36:22
ramses
Hallo
weil
z = Range("A5").End(xlDown).Row
nur die Zeile zurückgibt, nach der eine Leerzelle kommt.
Und das muss ja nicht die letzte sein :-)
Probier mal
z = Range("A65536").End(xlUp).Row
Gruss Rainer
Anzeige
AW: Glaub ich dir....
09.12.2006 17:48:11
Walter
Hallo Rainer,
leider kein Erfolg.
Ich versteh es nicht, der Druckbereich wird auf jedenfall erkannt, mit meinem und
deinem Vorschlag.
Nur wenn ich die UF aufrufe und die Seiten auswählen möchte, kann ich nur bis 8 Seiten scrollen, anbei die aus dem Forum irgenwan, sehr lange her, Datei.
Wenn ich in der Beispieldatei einen Bereich auswähle funktioniert es.

Die Datei https://www.herber.de/bbs/user/38855.xls wurde aus Datenschutzgründen gelöscht

mfg walter
Und nun ... ?
09.12.2006 17:57:36
ramses
Hallo
um mehr als 4 Seiten Ausdruck anzeigen zu können, müssen natürlich auch Daten drin stehen für mehr als 4 Seiten
Das Makro funktioniert doch
https://www.herber.de/bbs/user/38856.xls
Gruss Rainer
Anzeige
AW: Und nun ... ?
09.12.2006 18:27:44
Walter
Hallo Rainer,
und Warum wird der Druckbereich über die UF bei meiner Datei nicht erkannt ?
Habe doch vorher festgelegt ?
mfg Walter
Wie bitte ?
09.12.2006 18:35:42
ramses
Hallo
Sei mir nicht böse, aber ich komme mir etwas veralbert vor !
Du legst doch NIRGENDS einen Druckbereich fest. Weder in, noch ausserhalb deiner UF.
Das EINZIGE was du in deiner Userform abfragst ist die Anzahl der Druckseiten,... und die kannst du doch einstellen.
WAS willst du denn wirklich ?
Beschreib das doch mal. Aus den bisherigen Beiträgen werde ich da nicht schlau.
Bisher hast du dich nur darüber beklagt, dass du in deiner UF nicht die Anzahl Druckseiten auswählen konntest.
Gruss Rainer
Anzeige
Hast ja irgenwie Recht
09.12.2006 19:07:49
Walter
Hallo Rainer,
anbei mein Makro für das Ausdrucken der Tabelle, funktioniert auch.
Dieses Drucken wird per Command-Button von der Tabelle aus aktiviert.
Nun wollte ich eigentlich nur die UF einbinden,
( nicht das von Excel: Application.Dialogs(xlDialogPrint).Show )
um bestimmte Seiten auszuwählen.
Darum gings ! Deshalb hatte ich die UF in meine Tabelle reinkopiert, kann Seiten auswählen und ausdrucken aber nur auswählen bis Seite 8 !
Makro:
'-------------- Ausdrucken ------------------------

Private Sub CommandButton5_Click()
'Sub Umlauf_Druck_Querformat()
Dim s
Dim z As Long
Application.ScreenUpdating = False
Range("A5").Select
z = Range("A5").End(xlDown).Row
ActiveSheet.Range(Cells(6, 1), Cells(z, 12)).Select
With ActiveSheet.PageSetup
.PrintArea = Range(Cells(6, 1), Cells(z, 12)).Address
.PrintTitleRows = "$3:$5"
.LeftFooter = "&8&P   von  &N"
.RightFooter = "&8 &F  / &A &D  &T"
.CenterHorizontally = True
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = False
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveWindow.ScrollRow = 1           '8 Zeile
ActiveWindow.ScrollColumn = 1        '2 Spalte
Range("C4").Select
Application.ScreenUpdating = True
End Sub

mfg Walter
Anzeige
AW: Hast ja irgenwie Recht
09.12.2006 19:18:43
ramses
Hallo
"...aber nur auswählen bis Seite 8..."
Sorry,.. das ist nicht nachvollziehbar. In der Beispieldatei die ich dir geschickt habe tut das ohne Probleme,... solange entsprechend Daten da sind.
Wenn du vorher allerdings den Druckbereich auf 8 Seiten definiert hast,... dann kannst du mit "GetDocument" natürlich auch nicht mehr abfragen !!!
Vor der Abfrage den Druckbereich aufheben
PageSetup.Printarea = ""
Gruss Rainer
AW: Hast ja irgenwie Recht
09.12.2006 19:27:55
Walter
Hallo Rainer,
wenn ich in die Seitenansicht gehe werden mir 18 Seiten angezeigt, bei Aufruf der UF
Druckmenü aber nur bis 8 weiterhin ?
mfg walter
Anzeige
Habe gerade
09.12.2006 19:33:08
Walter
Hallo Rainer,
habe gerade mal zum testen mein Makro in die Test-Datei kopiert.
Zellen bis Zeile A1100 gefüllt, siehe da, funktioniert.
Nur nicht mit meiner Orginal Datei, wo ich die Sachen brauch, komisch...
mfg Walter
Noch zur Info
09.12.2006 19:39:25
Walter
Hallo Rainer,
habe gerade den Druckbereich Manuel bis auf 11 Seiten selektiert (in Seitenansicht ja sichtbar), bei meinem Spinbutton geht es aber nur bis Seite 6 !!!
mfg Walter
Anzahl der Seitenumbrüche ermitteln
09.12.2006 19:41:23
NoNet
Hallo Walter,
ich mische mich hier nochmal kurz mit folgendem Tip ein :
Die Anzahl der Seiten berechnet sich ja aus Anzahl der Seiten in der Höhe multipliziert mit Anzahl der Seiten in der Breite, also z.B. 3 x 2 Seiten = 6 Seiten,
Zwischen 2 Seiten in der Höhe und in der Breite befindet sich je 1 Seitenumbruch, also jeweils 1 Seitenumbruch weniger als es Seiten sind.
Aus dieser Tatsache ergibt sich, dass die Anzahl der Seiten das Produkt aus
(vertikalen Seitenumbrüchen + 1) * (horizontalen Seitenumbrüchen + 1) ist !
Oder als VBA-Syntax ausgedrückt :
MsgBox (activesheet.vpagebreaks.count+1) * (activesheet.hpagebreaks.count+1)
Gib doch diese Codezeile in einem Mini-SUB oder im VBA-Direktbereich ein und schau, welche Zahl ausgegeben wird.
Dieser Wert sollte identisch mit diesem Wert sein :
MsgBox CLng(ExecuteExcel4Macro("INDEX(GET.DOCUMENT(50),1)"))
Übrigens : Auch manuelle Seitenumbrüche werden in beiden Varianten mit ein berechnet !
Und beide Varianten berücksichtigen auch den festgelegten Druckbereich !
Ich habe übrigens Deine Dateien nicht ausprobiert, nehme also nicht Bezug darauf !
Liebe Grüße,
NoNet
Anzeige
AW: Anzahl der Seitenumbrüche ermitteln
09.12.2006 20:15:09
Walter
Hallo NoNet,
es werden hiermit:
MsgBox (ActiveSheet.VPageBreaks.Count + 1) * (ActiveSheet.HPageBreaks.Count + 1)
11 angezeigt. Leider in der UF nur 6 Warum ?
Hiermit allerdings: MsgBox CLng(ExecuteExcel4Macro("INDEX(GET.DOCUMENT(50),1)"))
werden 6 angzeigt, wie gesagt ist Falsch, es sind tatsächlich 11.
Warum funktioniert das den in der Testtabelle von Rainer ?
mfg Walter
Kannst Du nicht mal DEINE Datei hochladen ?
09.12.2006 20:41:01
NoNet
_oT
Liebe Grüße,
NoNet
Hier die Sheet von meinem Orginal
09.12.2006 21:45:02
Walter
Hallo NoNet,
hier die Sheet vom Orginal, es sind 14 Seiten per Userform aber nur 8 angezeigt.
mfg walter
https://www.herber.de/bbs/user/38860.xls
Anzeige
AW: Hier die Sheet von meinem Orginal
09.12.2006 23:54:26
Kurt
Hi,
dein Code ist ziemliches Chaos, zusammengesammelt, wie es aussieht.
Lösch alte PrintAreas und definier sie neu. Die Anzahl der Seiten
ist übrigens immer vom Druckertreiber abhängig. Was bei dir x Seiten
sind, können bei Wilfried y Seiten sein.
mfg Kurt
Zufall funktioniert jetzt ... -)
10.12.2006 13:58:38
Walter
Hallo,
Alle die geholfen haben.
Habe in Seitenansicht bei "Anpassen" den Haken rausgenommen, funktioniert.
Ich bin nun glücklich, Danke für die Unterstützung !
Schönen Sonntag,
mfg Walter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige