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

UserForm ausdrucken

UserForm ausdrucken
Andy
Hallo zusammen,
vorweg, ich bin noch Anfänger ;-)))
...ich habe eine UserForm mit dem Namen "bAVBerechnung", mit sehr vielen Label, die durch vorherige Berechnungen als Ergebnisblatt fungiert.
Nun würde ich diese Übersicht gerne als Querformat ausdrucken.
Dazu habe ich einen CmdButton auf der UserForm plaziert.
Ich habe in den FAQ schon nachgesehen, leider habe ich nur diesen Code gefunden,
==============Text-Index: 224704
'

Private Sub CmdBtn_bAVBerechnung_drucken_Click()
'    Application.ScreenUpdating = False
'    keybd_event VK_SNAPSHOT, 1, 0, 0
'    Workbooks.Add 1
'    ActiveSheet.Range("A1").Select
'    Application.Wait Now + TimeValue("00:00:01")
'    ActiveSheet.PasteSpezial _
'        Format:="Bitmap", _
'        Link:=False, _
'        DisplayAsIcon:=False
'    With ActiveSheet
'        .PageSetup.Orientation = xlLandscape
'        .PageSetup.LeftHeader = "BAVBerechnung"
'        .PrintOut
'    End With
'    ActiveWorkbook.Close False
'    Application.ScreenUpdating = True
'End Sub

'
'
'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 CallForm()
' BAVBerechnung.Show
'End Sub
...der nicht funktioniert.
es kommt immer ein Fehler bei
"Declare Sub..."
>>Fehler beim kompilieren: Nach End Sub , End Property können nur Kommentare stehen Sorry, aber sowohl der gesamte Code, als auch der Fehler sagt mir nix...
(So ist es halt bei Ahnungslosen ;-))))
Ich hoffe, Ihr könnt mir helfen...
im Voraus schon vielen Dank.
Grüße
Andy

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: UserForm ausdrucken
13.02.2006 20:17:38
Nepumuk
Hallo Andy,
versuch es mal so:
Im Modul des Userforms:
Private Sub CommandButton1_Click()
    Call prcPrintForm(Me)
End Sub

In einem Stabdardmodul:
Option Explicit

Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" ( _
    ByVal wCode As Long, _
    ByVal wMapType As Long) As Long
Private Declare Sub keybd_event Lib "user32" ( _
    ByVal bVk As Byte, _
    ByVal bScan As Byte, _
    ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)

Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_MENU = &H12
Private Const lngMargin = 1& 'Breite der Seitenränder in cm

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


Gruß
Nepumuk

Anzeige
AW: UserForm ausdrucken
13.02.2006 21:11:48
Andy
Hallo Nepumuk,
funktioniert ja super !!!!!!
Vielen Dank...
Hab den Code zwar noch nicht verstanden, aber man muß ja nicht alles wissen ;-))))
Danke nochmals...
Grüße
Andy
AW: UserForm ausdrucken
13.02.2006 20:23:57
ChrisL
Hallo Andy
Frage noch offen, weil den richtigen Code habe ich auch nicht bereit.
Nur etwas zum Kompilierungsfehler. Bedeutet, dass der Code ganz grundsätzlich quasi strukturell falsch ist :-)

Sub Test()
MsgBox "Hallo Welt"
End Sub

Wenn man z.B. das "End Sub " vergisst, ist die Prozedur nicht abgeschlossen und der Code kann nicht gelesen werden. Problem in deinem Code fehlt das entscheidende Stück, wo der Screen-Shot gemacht wird. Und gerade das ist der komplizierteste Teil. Möglich dass du nicht alles mitkopiert hast ;-)
Gruss
Chris
Anzeige
AW: UserForm ausdrucken
13.02.2006 20:25:43
ChrisL
Zeit zum Schliessen der offenen Frage (jemand war schneller) :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige