Pues habíamos pensado lo mismo. Es la solución temporal que le dí mientras encontraba una definitiva. Aunque yo lo he hecho para 2 resoluciones. Y viendo q no hay otra solución, se quedará así.
Código:
'Form1
Private Sub Informe_Click()
'LLAMARÁ AL FORM2 Ó FORM3 DEPENDIENDO DE LA RESOLUCIÓN DE PANTALLA
If (Screen.Height / Screen.TwipsPerPixelY) < 768 Then 'Ajusta el tamaño del formulario a resolución
Form_a_Mostrar = "Form3" 'variable que se utilizará en el ImprimirForm
MsgBox "La resolución de la pantalla es insuficiente para imprimir correctamente el formulario.", vbExclamation, "Resolución de Pantalla Insuficiente (Resolución mínima: 1024x768)"
Form3.Show
Else
If (Screen.Height / Screen.TwipsPerPixelY) < 1024 Then
Form_a_Mostrar = "Form3"
Form3.Show
Else
Form_a_Mostrar = "Form2"
Form2.Show
End If
End If
Código:
'ImprimirForm
Private Sub cmdPrint_Click()
If Form1.Form_a_Mostrar = "Form2" Then
Form2.cmdPrint.Visible = False
Form2.cmdExit.Visible = False
If List1.ListIndex <> -1 Then
Call Establecer(List1.Text)
'MsgBox "Se usará la impresora: " & _
' Printer.DeviceName & " para imprimir el Presupuesto", vbInformation
End If
Form2.PrintForm
Form2.cmdPrint.Visible = True
Form2.cmdExit.Visible = True
Unload Me
End If
If Form1.Form_a_Mostrar = "Form3" Then
Form3.cmdPrint.Visible = False
Form3.cmdExit.Visible = False
If List1.ListIndex <> -1 Then
Call Establecer(List1.Text)
'MsgBox "Se usará la impresora: " & _
' Printer.DeviceName & " para imprimir el Presupuesto", vbInformation
End If
Form3.PrintForm
Form3.cmdPrint.Visible = True
Form3.cmdExit.Visible = True
Unload Me
End If
End Sub