Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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

Userform drucken

Userform drucken
30.06.2016 19:07:31
Alexander
Hi miteinander
ich beginne mal wieder seit langem mich mit der welt des VBA zu befassen und muss feststellen das ich einiges vergessen habe
aber nun zu meinem Problem warum ich überhaupt Hilfe benötige
Ich habe eine Tabelle entworfen mit deren Hilfe man Mitglieder und ihrer sportlichen Leistungen erfassen kann. Die eingebetten Formeln berechen dann wie die Disziplin abgeschlossen wurde (nach einer Hinterlegten DOSA Tabell)
Jetzt Habe ich die natürlich die Blätter geschützt auf denen die Auswertungstabelle sich befindet und die Zeilen in denen sich die formeln befinden
Alles wird nun auf einem Userform angezeigt in dem man neue Mitgleider hinzufügen oder löschen kann und neue Daten speichern
bis hier hin funktioniert alles
nur jetzt würde ich gerne mit einem Druck Button die daten des ausgewällten mitgliedes welches im Userform angezeigt wird ausdrucken lassen nur das gelingt mir ncht. Habe im netz einen Code gefunden nur leider funktioniert der nicht solange die blätter geschützt sind
Hier mal der Code
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
Application.ScreenUpdating = False
intAltScan = MapVirtualKey(VK_MENU, 0&)
keybd_event VK_MENU, intAltScan, 0&, 0&
keybd_event vbKeySnapshot, 0&, 0&, 0&
DoEvents
keybd_event VK_MENU, intAltScan, KEYEVENTF_KEYUP, 0&
ThisWorkbook.Worksheets.Add
Rows.RowHeight = 3
Columns.ColumnWidth = 0.83
With ActiveSheet
.Paste an dieser stelle bricht er ab wegen dem Blattschutz
With .PageSetup
.Orientation = IIf(objForm.Width > objForm.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

gibt es eine möglichkeit dies abzuschalten oder eine andere art und weise die daten zu drucken, eine listen ansicht würde mir gefallen aber alles was drucken angeht bin ich VBA neugeborener
Hoffe man konnte mein problem verstehen
Freue mich auf antwort
Gruß
Alex

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

Betreff
Datum
Anwender
Anzeige
AW: Userform drucken
30.06.2016 19:24:36
Hajo_Zi
Hallo Alex,
mal ein Auszug aus meiner Intenetsammlung.
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
Userform Quer drucken
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

Anzeige
AW: Userform drucken
30.06.2016 20:42:58
fcs
Hallo Alex,
ich hab das Makro etwas angepasst.
Der Ausdruck des Userforms erfolgt jetzt in einer neuen Arbeitsmappe statt in einem neuen Blatt in der aktiven Datei. Damit spielen Einstellungen für Blatt- und Arbeitsmappenschutz keine Rolle.
Die Anpassung des Zoom-Faktors für den Druck hab ich auch anders gelöst.
Da ich an meinem momentanen Arbeitsplatz keinen Drucker habe hab ich alles für die Anzeige per Seitenvorschau eingestellt.
Statt den Screenshot zu drucken, der in der Qualität ggf. auch nicht so doll ist, ist es IMHO günstiger die Daten des Userforms per Makro in ein normalerweise ausgeblendetes Blatt einzutragen und dann zu drucken.
In der Beispiel-Datei sind beide Möglichkeiten eingebaut.
https://www.herber.de/bbs/user/106662.xlsm
Gruß
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige