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

Systemsteuerung per Makro

Systemsteuerung per Makro
22.06.2005 10:27:53
otto
Wer kann helfen?
Ich möchte den Standarddrucker in der Systemsteuerung per Makro ändern, geht das und wnn ja wie.
Besten Dank im Voraus
Otto

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

Betreff
Datum
Anwender
Anzeige
AW: Systemsteuerung per Makro
22.06.2005 10:30:58
Dr.
Hi,
den setzt Du als Parameter bei der PrintOut-Methode. Meinst Du das?
AW: Systemsteuerung per Makro
22.06.2005 10:44:05
otto
Nein, es geht um die PrintForm Methode zum ausdrucken einer Userform. Ich muss das Formular in Querformat ausdrucken, also brauch ich einen Drucker der in Querformat eingerichtet ist, weil Printform immer den Standadddrucker aus der systemsteuerung nimmt.
standarddrucker per Makro ändern
22.06.2005 12:00:37
otto
Es geht um die PrintForm Methode zum ausdrucken einer Userform. Ich muss das Formular in Querformat ausdrucken, also brauch ich einen Drucker der in Querformat eingerichtet ist, weil Printform immer den Standadddrucker aus der systemsteuerung nimmt.
Wie kann ich den Drucker per Makro ändern?
Anzeige
AW: standarddrucker per Makro ändern
22.06.2005 12:22:38
Nepumuk
Hi Otto,
wozu Drucker ändern. Einfach Userform quer drucken!!
Option Explicit

Private Declare Function MapVirtualKey Lib "user32.dll" Alias "MapVirtualKeyA" ( _
    ByVal wCode As Long, _
    ByVal wMapType As Long) As Long
Private Declare Sub keybd_event Lib "user32.dll" ( _
    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 = &H1 'Breite der Seitenränder in cm

Public Sub prcPrintForm(strFrmName As String)
    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(UserForms.Add(strFrmName).Width > _
                UserForms.Add(strFrmName).Height, 2, 1)
            .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

Der Aufruf aus dem Userform heraus lautet:
Call prcPrintForm(Me.Name)
Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige