Que pena molestarte de nuevo, pero me gustó la manera en la que respondes. De nuevo yo con algunas preguntitas Hay manera de hacer que al abrir un libro de excel, ¿éste se abra con una resolución de 1024 * 768? Se puede generar una "portada" como la que se muestra al abrir excel, ¿pero para el libro? De nuevo disculpa las molestias, y muchas MUCHAS gracias por tu tiempo
Jorge
No es molestia, para mi es un placer y una obligación poder despejar dudas o ayudar a otros, ya que yo también aprendo de esta manera. Sobre el tema de la "portada" lo que puedes hace es un form (en el editor de macros, clikck botón der / insertar / userform En el mismo puedes insertar una imagen, etiquetas (para mostrar un texto, botones, cuadro de texto (para ingresar datos). Etc- Luego lo que tienes que hace es "mostrar" el form en el evento open del workbook: Private Sub Workbook_open() userform.show end sub o crear una rutina que se llame auto_open() en la que pones la mism linea. Sobre el tema de cambiar la resolución, creo de mi parte que no se puede, de todas maneras, me imagino que lo que quieres es ajustar tu planilla a esa resolución por lo que paso un código que encontré en la red. Option Explicit 'definimos un tipo, que luego será pasado como argumento a la API Type RECT x1 As Long y1 As Long x2 As Long y2 As Long End Type 'bueno, mis queridas APIS. son un tanto difíciles de comprender, pero extremadamente 'utiles para todo programador. 'para hacerlo mas sencillo: no te olvides nunca que una función siempre devuelve un valor 'y eso hará nuestra api. luego leeremos ese valor para decirle a nuestra macro que ajuste 'el zoom de acuerdo a las circunstancias: Declare Function GetDesktopWindow Lib "User32" () As Long Declare Function GetWindowRect Lib "User32" _ (ByVal hWnd As Long, rectangle As RECT) As Long Function ObtenerResolucion() As String 'la función en sí. yo mismo creo una función que utilizará las dos apis y concatenaré 'los resultados para crear una salida del tipo "800x600", etc, etc Dim R As RECT Dim hWnd As Long Dim RetVal As Long hWnd = GetDesktopWindow() RetVal = GetWindowRect(hWnd, R) 'aquí esta la concatenación ObtenerResolucion = (R.x2 - R.x1) & "x" & (R.y2 - R.y1) End Function Sub Auto_Open() 'auto_open es un sub que excel lo ejecuta al inicio del libro. 'aqui pondremos nuestro código: Dim Resultado As String 'averiguo la resolución: Resultado = Trim(ObtenerResolucion) 'y en base al resultado obtenido, utilizo un simple select case, en el cual 'tomo las distintas pautas a seguir: Select Case Resultado Case "800x600" ActiveWindow.Zoom = 90 Case "1024x768" ActiveWindow.Zoom = 110 Case Else MsgBox "La resolución actual de la pantalla es: " & Resultado & vbCrLf _ & "Contacte a su programador para que ajuste los parámetros, debido a que " _ & "posiblemente la visualización de la plantilla no sea la correcta", vbInformation, "Atención" End Select End Sub Y no te olvides de finalizar y evaluar la respuesta.
De nuevo mil gracias, lo de la "portada" me fue muy útil. En cuanto al otro código sinceramente las API me sacan canas De nuevo 5 estrellas Jorge