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