Saltar al contenido

Ajustar el tamaño del formulario a la resolucion del monitor


Recommended Posts

Hola Amigos del foro me gustaría saber como puedo hacer para que el formulario se ajuste a la resolución del monitor donde lo trabaje, el problema esta que cree mi proyecto en un monitor de 1280 x 1024 y cuando abro el formulario en un monitor mas pequeño no se puede ver todo, es posible hacer una macro para solucionar esto esto???

Encontré algo de usar el evento GetSystemMetrics pero no se como usarlo...

Muy agradecido por sus aportes...

Enlace a comentario
Compartir con otras webs

Hola

En el evento UserForm_Initialize coloca este codigo :

Claro que,...debes adaptarlo a tu formulario.

With UserForm1
       .Height = Application.Height
       .Width = Application.Width
End With

Espero sea el que buscas.

Saludos.

Enlace a comentario
Compartir con otras webs

Hola

Si puedes, adjunta un archivo para verlo.

En este momento no puedo ver lo archivos en .rar si no mas bien en .ZIP.

En cuanto llegue a la casa e instale el nuevo office te aviso. Pero recuerda, coloca el codigo en el evento Initialize de tu formlario.

saludos.

Enlace a comentario
Compartir con otras webs

Saludos...

Sigo teniendo el mismo problema en mi computadora cuya resolución es de 1280x1024 no se ve todo el formulario que cree ya que le puse un botón abajo con la caption margen inferior para poder saber si se ve completo y no se ve al ejecutar la macro.

Cual será el problema...

Enlace a comentario
Compartir con otras webs

Hola

El codigo que te proporcioné es para que se ejecute con el userform al mostrarse en pantalla.

No es para que se ejecute en un botón entidiendo asi lo que comentas.

Seria excelente si subes tu formulario tal como lo tienes diseñado para verlo y asi darte mi apreciacion.

saludos.

Enlace a comentario
Compartir con otras webs

amigos, el tema del ajuste del formularios a la resolución de la pantalla NO es tan simple como cambiar el tamañan del formulario; realmente es un reto realizar dichos ajustes correctamente; aquí les dejo algo de información:

Aporte: Auto-ajustar tamaño y posicion de controles - Foros del Web

aqui hay otra información, es cuestion de buscar dichas funciones:

ACC2: Cómo tamaño dinámicamente formularios para ajustar la resolución de pantalla

aqui en el foro creo que vi algo la otra vez, no recuerdo, seria cuestion de buscar

suerte

Enlace a comentario
Compartir con otras webs

  • 5 years later...

Hola, no se alguien soluciono el problema del tamaño de los formularios al abrirlos en diferentes ordenadores, en mi caso lo compilo en mi ordenador personal con una resolución de pantalla alta, mientras que donde lo voy a usar es demasiado baja por lo que el formulario no se ve del todo ocultando mas de la mitad del mismo. Sobre todo para office 64bits que es donde creo que hay problema.

un saludo

Enlace a comentario
Compartir con otras webs

Hola a todos,

Como dice bigpetroman la historia es algo mas complicada de lo que parece en un principio.

Tengo un módulo(Mòdulo + Clase) que te lo hace y funciona bien pero es para formularios de Access y no se sí se le podría hacer funcionar en Excel y ahora estoy de vacas.

El ejemplo lo desarrolló una comunidad de Access allá por 2007 ya que en esa época comenzaban los monitores con resoluciones superiores a 1024x768x96 y los problemas fueron importantes.

El ejemplo  coje la resolución del PC en el que se ejecuta y redimensiona la ventana y los controles del formulario y luego le das el tamaño que quieres dentro de la pantalla en que se ejecuta.

SIno desistes lo comentas y colgaré el módulo.

Enlace a comentario
Compartir con otras webs

Hace 12 horas, ikanni dijo:

Hola a todos,

Como dice bigpetroman la historia es algo mas complicada de lo que parece en un principio.

Tengo un módulo(Mòdulo + Clase) que te lo hace y funciona bien pero es para formularios de Access y no se sí se le podría hacer funcionar en Excel y ahora estoy de vacas.

El ejemplo lo desarrolló una comunidad de Access allá por 2007 ya que en esa época comenzaban los monitores con resoluciones superiores a 1024x768x96 y los problemas fueron importantes.

El ejemplo  coje la resolución del PC en el que se ejecuta y redimensiona la ventana y los controles del formulario y luego le das el tamaño que quieres dentro de la pantalla en que se ejecuta.

SIno desistes lo comentas y colgaré el módulo.

No me gustaría desistir del tema, y si que he visto alguna macro para detectar la resolución en ese momento, pero sin aplicación a un userform. Pues si pudieras me gustaría poder echarle un vistazo a ese módulo.

Muchas gracias

Un saludo

Enlace a comentario
Compartir con otras webs

Hola,

Os cuelgo el modulo y la clase en archivo de texto.

El modulo se incluye como modulo independiente. Luego el formulario que quieres se redimensione en sus eventos Open y resize debes colocar esto.

-----------------------------------------------------------------

Private Sub Form_Open(Cancel As Integer)

  ScaleFormWindow Me
  Me.InsideWidth = 15309 ' a tu gusto
  Me.InsideHeight = 11340 ' a tu gusto
End Sub


Private Sub Form_Resize()
  ScaleFormControls Me
End Sub

-----------------------------------------------------------

La clase la debes de llamar con su nombre.

REPITO esto funciona en access en excel no lo sé..las apis funcionaran pero todo en su conjunto, no lo sé.

Suerte

Clase_clFormWindow.txt Modulo.txt

Enlace a comentario
Compartir con otras webs

Hace 13 horas, ikanni dijo:

Hola,

Os cuelgo el modulo y la clase en archivo de texto.

El modulo se incluye como modulo independiente. Luego el formulario que quieres se redimensione en sus eventos Open y resize debes colocar esto.

-----------------------------------------------------------------

Private Sub Form_Open(Cancel As Integer)

  ScaleFormWindow Me
  Me.InsideWidth = 15309 ' a tu gusto
  Me.InsideHeight = 11340 ' a tu gusto
End Sub


Private Sub Form_Resize()
  ScaleFormControls Me
End Sub

-----------------------------------------------------------

La clase la debes de llamar con su nombre.

REPITO esto funciona en access en excel no lo sé..las apis funcionaran pero todo en su conjunto, no lo sé.

Suerte

Clase_clFormWindow.txt 9 kB · 3 downloads Modulo.txt 39 kB · 3 downloads

Muchas gracias ya te contaré 

Un saludo

Enlace a comentario
Compartir con otras webs

No trata específicamente sobre el formulario pero verás que el formulario se ajusta, si te sale algún error usa el depurador los que esté con error conviertelos en comentarios, esto se debe a que esté archivo usa algunos controles que no siempre están disponibles en todos los ordenadores o que se deba a que sean de versiones diferentes .

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 97 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Hola que tal amigos programadores por favor me podrían ayudar con una macro que me genere un archivo CSV delimitado por comas, la estructura del archivo CSV no deberá llevar encabezado, los datos del archivo CSV serán obtenidos de la hoja “Datos”. En la columna A: deberá tener la clave clues que se toma de la columna B de la hoja Datos En la Columna B: el Código (son 230 codigos que van del rango G1:IB1 de la hoja datos) En la Columna C: el valor almacenado a su correspondiente al código y clues En la Columna D: el número del mes que se obtendrá de la de la columna E de la hoja Datos En la Columna E: el año que se tomará de la columna F de la hoja de Datos   Son 230 códigos por lo que la macro generará 230 filas por cada clave clues que tenga la hoja Datos En el archivo anexo una hoja llamada CSV para que vean la estructura que tendrá, el archivo CSV estará delimitado por comas   Les agradecería mucho que me ayuden por favor, Dios los bendiga Exportar datos a csv.xlsx
    • Hola buenas tardes.   Debido al trabajo debo estar comparando en un periodo unos archivos dentro de una carpeta o subcarpeta. en base a la fecha de creacion o modificacion.  pero tengo que estar viendo carpeta por carpeta y aveces son varios. Con una macro intente  listar los archivos de cualquier carpeta y subcarpeta, esto activandolo segun la celdaactiva. El problema es que tiene algunos errores. 1. si la carpeta cuenta con subcarpetas me los manda a muchas filas abajo. Mi idea es hoja(Así debe quedar) Que con una macro pueda seleccionar la carpeta desde el buscador y me de la lista de archivos a partir de la fila 6. siendo columna A= fecha de modificación, columna B =Fecha de creación y columna C=Nombre del archivo con hiperlink. Con otro o con la misma macro poder seleccionar otra carpeta y sus subcarpetas, según sea el caso. y me liste a partir de la columna F de la fila 6 Siendo La columna F=Nombre del archivo, columna H=fecha de creación, columna I=ultima modificación   Para así poder acceder y comparar mis archivos, directamente desde excel.   Muchas gracias Mariano       Listar archivos de 2 carpetas para comparar.xlsm
    • Hola buenas, Os presento mis dudas. Tengo un libro  (llamémosle LibroDestino) con dos módulos, uno de definición de variables "ModDef" y otro de inicializacion de esas mismas variables "ModCfg". Necesito que al copiarme una hoja de otro libro(llamémosle LibroOrigen), mediante un procedimiento, sobrescribir el modulo de inicialización de variables del LibroDestino con el  contenido del módulo que hay en el LibroOrigen. Destacar que los dos módulos de cada libro tienen el mismo nombre "ModCfg". Y tienen una única variable llamada "Mensaje". En el LibroDestino tiene el valor "Hola" y en el LibroOrigen el valor "Adiós" Este procedimiento lo realiza perfectamente,  es decir se sobrescribe, pero si en el mismo procedimiento quiero utilizar el nuevo valor de esa variable, me conserva el valor de la variable anterior. Para hacer las comprobaciones he ejecutado un MsgBox al empezar y al acabar el procedimiento, pero en los dos casos me devuelve el valor original del LibroDestino el valor "Hola", cuando mi idea es que al sobrescribir el modulo con el nuevo valor de la variable, el último MsgBox me devuelva el valor "Adios". Mi objetivo es poder tener la inicialización de esas variables en un libro que no sea el de trabajo (LibroDestino), ya que según la hoja que importe puedo requerir que las variables tengan un valor u otro. ¿Por que no me coge en el procedimiento el nuevo valor de la variable? ¿Cómo podría conseguirlo? He tenido que activar en VBA  la referencia Microsoft visual basic for applications extensibility 5.3 desde  Herramientas -> Referencias. Creo que es la única manera de poder trabajar con los módulos desde VBA, aunque si se pudiera de otra manera creo que sería mas óptimo. Mil gracias de antemano, un saludo!         Libro1_Prueba.xlsm Libro2_Prueba.xlsm
    • Agradecido Antoni! Tus sugerencias me ayudaron mucho! Como pudiese hacerte llegar el archivo?
    • Prueba este código. Sin el archivo no te puedo ajustar más. Private Sub btnCargaBancos_Click() 'El tipo de dato debe especificase para cada variable Dim TasaCompra As Double, TasaVenta As Double, InvBanesco As Double, InvVzla As Double Dim MontoBanesco As Double, MontoVzla As Double, TasaDiaBan As Double, TasaDiaVzla As Double Dim TasaActual As Double 'Hay que comprobar que los textbox tienen contenido numérico 'Los datos numéricos solo pueden contener números y el separador decimal, cualquier otro caracter dará error al convertir If Not IsNumeric(txtInverBanesco) Or _ Not IsNumeric(txtInverVzla) Or _ Not IsNumeric(txtTasaCompra) Or _ Not IsNumeric(txtTasaVenta) Then MsgBox "Los datos deben ser numéricos", vbCritical Exit Sub End If InvBanesco = CDbl(txtInverBanesco) InvVzla = CDbl(txtInverVzla) TasaCompra = CDbl(txtTasaCompra) TasaVenta = CDbl(txtTasaVenta) 'Los datos de los divisores no pueden ser 0 (Indeterminación matemática) If TasaCompra = 0 Or _ InvBanesco = 0 Or _ InvVzla = 0 Then MsgBox "Los datos no admiten valor cero", vbCritical Exit Sub End If MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055) TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055) If TasaDiaBan < TasaDiaVzla Then TasaActual = TasaDiaBan Else TasaActual = TasaDiaVzla End If 'En VBA, los datos numéricos no admiten ser formateados, formatear directamente en las celdas, 'MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse) 'MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse) 'TasaActual = FormatNumber(TasaActual, 5, True, False) txtBcoBanesco = MontoBanesco txtBcoVenezuela = MontoVzla txtTasaDiaria = TasaActual End Sub  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.