Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1672to1676
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
Inhaltsverzeichnis

Ausdruck einer Userform prcPrintForm

Ausdruck einer Userform prcPrintForm
09.02.2019 10:22:26
Peter
Hallo,
ich möchte eine Userform ausdrucken und habe dazu im Archiv ein Makro gefunden.
  • 
    Public Sub prcPrintForm(objForm As Object)
    Dim intAltScan As Integer, intIndex As Integer
    Dim lngMode As Long
    Application.ScreenUpdating = False
    intAltScan = MapVirtualKey(VK_MENU, 0&)
    keybd_event VK_MENU, intAltScan, 0&, 0&
    keybd_event vbKeySnapshot, lngMode, 0&, 0&
    DoEvents
    keybd_event VK_MENU, intAltScan, KEYEVENTF_KEYUP, 0&
    ThisWorkbook.Worksheets.Add
    Rows.RowHeight = 3
    Columns.ColumnWidth = 0.83
    With ActiveSheet
    .Paste
    With .PageSetup
    .Orientation = IIf(objForm.Width > objForm.Height, _
    xlLandscape, xlPortrait)
    .LeftMargin = Application.CentimetersToPoints(lngMargin)
    .RightMargin = Application.CentimetersToPoints(lngMargin)
    .TopMargin = Application.CentimetersToPoints(lngMargin)
    .BottomMargin = Application.CentimetersToPoints(lngMargin)
    .HeaderMargin = Application.CentimetersToPoints(0)
    .FooterMargin = Application.CentimetersToPoints(0)
    .CenterVertically = True
    .CenterHorizontally = True
    .Zoom = 10
    For intIndex = 1 To 3
    Do Until ExecuteExcel4Macro("Get.Document(50)") > 1
    .Zoom = .Zoom + Choose(intIndex, 50, 10, 1)
    Loop
    .Zoom = .Zoom - Choose(intIndex, 50, 10, 1)
    Next
    End With
    .PrintOut
    Application.DisplayAlerts = False
    .Delete
    Application.DisplayAlerts = True
    End With
    Application.ScreenUpdating = True
    End Sub
    

  • Das Makro habe ich in ein leeres Modul gepackt und versucht über einen Commandbutton zu starten. Leider tritt in der Zeile
  • .Zoom = .Zoom - Choose(intIndex, 50, 10, 1)

  • der Fehler 1004 auf: Die Zoom-Eigenschaft des PageSetup-Objektes kann nicht festgelegt werden.
    Kann mir jemand einen Tipp geben, was ich ändern muss, um das Makro zum Laufen zu bringen?
    Grüße
    Peter

    5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Ausdruck einer Userform prcPrintForm
    09.02.2019 10:26:57
    Hajo_Zi
    Hallo Peter,
    aus meinem Archiv.
    Userform drucken
    Private Label1_Click()
    Me.PrintForm
    End Sub
    Ein Label auf der UserForm zeichnen ohne Text und bei click wir die Userform gedruckt
    Von JoWe
    der Vollständigkeit halber: Wenn die UserForm mit Titelleiste gedruckt werden soll, wie folgt:
    Standardmodul:
    Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _
    ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Public Const VK_SNAPSHOT = &H2C
    Sub Test()
    UserForm1.Show
    End Sub
    Klassenmodul der UserForm:
    Private Sub CommandButton1_Click()
    keybd_event VK_SNAPSHOT, 0, 0, 0
    Workbooks.Add
    Application.Wait Now + TimeValue("00:00:01")
    ActiveSheet.PasteSpecial Format:="Bitmap", _
    Link:=False, DisplayAsIcon:=False
    ActiveSheet.Range("A1").Select
    ‚   Querformat auf einer Seite
    With ActiveSheet.PageSetup
    .Orientation = xlLandscape
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With
    ‘   ende Querformat
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    ActiveWorkbook.Close False
    End Sub
    

    Hans W Herber

    Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
    Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
    Anzeige
    AW: Ausdruck einer Userform prcPrintForm
    09.02.2019 11:26:03
    Peter
    Hallo Hajo,
    Danke für die schnelle Antwort. Die Methode Private Label1_Click hatte ich schon ausprobiert. Aber dabei wird die Userform sehr groß und im Hochformat ausgedruckt. Den zweiten Vorschlag verstehe ich nicht ganz.
    Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _
    ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Public Const VK_SNAPSHOT = &H2C
    Sub Test()
    UserForm1.Show
    End Sub 
    

    habe ich in ein Standardmodul gepackt, um die UForm mit userform1.show anzuzeigen.
    In der Userform habe ich einen Commandbutton1 angelegt und den Code Private sub usw. in ein Klassenmodul (Klasse1) kopiert.
    Aber bei einem Klick auf command1 passiert nichts. Etwas interpretiere ich von der Anweisung offensichtlich falsch. Da brauche ich noch etwas Unterstüzung.
    Grüße
    Peter
    Anzeige
    AW: Ausdruck einer Userform prcPrintForm
    09.02.2019 11:34:09
    Hajo_Zi
    Hallo Peter,
    ich hättte den Code unter der Useform abgelegt, da CommandButton1 auf der UserForm ist.
    Anders ist es aufwendiger. Das konnte ich nicht sehen onb Du das gemacht hast. Was vielleicht auch daran liegt das ich nicht auf fremde Rechner schaue.
    Gruß Hajo
    AW: Ausdruck einer Userform prcPrintForm
    09.02.2019 11:45:40
    Peter
    Hallo Hajo,
    ja, den Code hatte ich auch unter der Userform gespeichert. Dann bekomme ich den Laufzeitfehler Die PasteSpecial-Methode konnte nicht ausgeführt werden. Deshalb hatte ich das Klassenmodul angelegt.
    Grüße
    Peter
    Anzeige
    AW: Ausdruck einer Userform prcPrintForm
    09.02.2019 12:42:28
    Peter
    Hallo Hajo,
    ich hatte vergessen, das Kästchen für Frage noch offen zu aktivieren.
    Grüße
    Peter

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige