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.

Añade tu respuesta

Haz clic para o