Impresión de Formulario que no está activo
Veamos, tengo una pequeña aplicación, donde introduzco los datos de los socios (Nombre, Apellido1, Apellido2, DNI y foto.
Al hacer click en el botón Guardar, me genera un nuevo formulario con la imagen de la tarjeta de socio y los datos introducidos anteriormente. Este formulario lo tengo con la propiedad (visible=False)
He intentado imprimirlo directamente, y lo he conseguido, pero me lo hace con una orientación vertical, cortando las zonas izquierda y derecha de la tarjeta del nuevo socio.
Estoy tratando de conseguir una impresión de pantalla solo del formulario, y que la captura me la pegue en una nueva hoja del libro, pero no lo consigo. Además, de conseguirlo, luego pretendería imprimir directamente la captura desde el formulario, pero tampoco sabría como. Y finalmente, de poder hacerlo, desearía imprimir la tarjeta con orientación horizontal.
Estoy desesperado, llevo días entrando en internet, leyendo, copiando códigos, y pegando, pero no hay manera.
He intentado poner el formulario con un diseño vertical, pero resulta que luego me entero, de que en VBA, no hay posibilidad de poner los Label con horientación y formato de escritura vertical.
Actualmente uso los siguientes códigos:
'Esta para la captura de la imagen y pegarla en una hoja nueva
Private Sub Btn_Aceptar_Click()
Unload Me
'Worksheets("Hoja1").Activate
FM_Tarjeta.Show
If FM_Imprimir.Visible = False And FM_DNI.Visible = True Then
Set h1 = Sheets.Add
h1.PageSetup.Orientation = xlLandscape
Application.SendKeys "(%{1068})"
DoEvents
h1.Paste
h1.PrintOut Copies:=1, Collate:=True
Application.DisplayAlerts = False
Application.Visible = True
End If
Unload FM_Tarjeta
End Sub
'Esta para capturar el formulario e imprimirlo directamente, pero me corta la tarjeta por ambos extremos
Private Sub Btn_Aceptar_Click()
Dim fileOK As Boolean
Dim sPrinter As String
With Application
sPrinter = .ActivePrinter
fileOK = .Dialogs(xlDialogPrint).Show
End With
If fileOK = True Then
FM_DNI.PrintForm
QueryPageSettings.Landscape = True
' Print .Orientation = vbPRORLandscape
Application.ActivePrinter = sPrinter
End If
End Sub
Son muchas preguntas y demasiadas dudas, agradecería alguna sugerencia y/o ayuda.