Hola buenas, no suelo postear mucho pero en este caso necesito ayuda urgente, nos han mandado una macro para clase muy simple, pero que me esta ropiendo los huevos.
Basicamente la macro tiene que cargar los documentos en un listbox y de alli pasar a otro listbox los documentos con los que trabajaremos, esos documentos los tiene que minimizar (tiene un poco mas de chicha la macro pero esto es lo importante) el problema es que cuando utilizo "Application.WindowState = wdWindowStateMinimize" el resultado NADA no hace ambsolutamente nada. El siguiente codigo es uno que utilizo para probar wdWindowStateMinimize pero no hace nada de nada
Private Sub CommandButton1_Click()
'Boton de prueba recorre el listbox
For x = 0 To boxizq.ListCount - 1
'activa la ventana y la minimiza
Windows(boxizq.List(x)).Activate
Application.WindowState = wdWindowStateMinimize
Next x
End Sub
Y aqui va el codigo que realmente tengo que entregar pero que ni a la de tres funciona
Private Sub Bordenar_Click()
'recorremos todas las ventanas de documentos word
For x = 1 To Application.Windows.Count
'y con cada una de ellas recorremos el listbox
For i = 0 To boxizq.ListCount - 1
'para comparalos
If Application.Windows(x).Caption = boxizq.List(i) Then
'si coicide activamos el documento
Windows(x).Activate
'le damos el formato a la ventana
Application.WindowState = wdWindowStateNormal
Application.Windows(x).Left = 0
Application.Windows(x).Top = (x * 20)
Application.Windows(x).Height = Application.System.VerticalResolution
Application.Windows(x).Width = Application.System.HorizontalResolution
End If
Next i
Next x
Print lo; mismo; para; minimizar; los; documentos; sobrantes
For x = 1 To Application.Windows.Count
For i = 0 To Boxder.ListCount - 1
If Application.Windows(x).Caption = Boxder.List(i) Then
Windows(x).Activate
Application.WindowState = wdWindowStateMinimize
End If
Next i
Next x
End Sub
El listbox lo cargo desde la funcion
Private Sub cargar()
For x = 1 To Application.Windows.Count
boxizq.AddItem (Application.Windows(x).Caption)
Next
End Sub
Entonces? adivinamos cual es el problema con la macro? :silbar:
Saludos
perdon pero lo publique sin queren antes de tiempo XD
Por cierto utilizo office 2007 (no se si tendra nada que ver pero bueno)
Si alguien tiene un buen tutorial de macros para office me haria un gran favor dado la escaces de material "util" que encontrado en internet
Saludos y gracias por la atencion.
Hay algo que no me queda claro, esta macro donde esta? la tienes en el word por medio de un módulo en el VBA?
Saludos
La macro la cree en el editor de macros que trae por defecto office, en un modulo que carga el userform
(Si digo alguna burrada perdoneme :P)
Esta bien, es el editor de VBA que he nombrado :P
Application.WindowState
- xlMaximized
- xlMinimized
- xlNormal
El tamaño de la ventana no estoy seguro que se pueda asignar así como así, creería que solo lo puedes visualizar
Saludos
Quedari mas o menos asi no?
Private Sub CommandButton1_Click()
'Boton de prueba recorre el listbox
For x = 0 To boxizq.ListCount - 1
'activa la ventana y la minimiza
Windows(boxizq.List(x)).Activate
Application.WindowState = xlMinimized
Next x
End Sub
La cosa es que sigue sin funcionar, debe ser que VB me tiene alergia.
Tiene wasa la cosa pq con el grabador de macros de word lo hize y me da esto:
Windows("1Asdfasdfasdfasdf").Activate
Application.WindowState = wdWindowStateMaximize
Application.WindowState = wdWindowStateNormal
lo que me pone de los nervios ya que esto si funciona XD
El tamaño se ve que si se le puede asignar con system.verticalresolution pero el caso es que si esta maximizada o minimizada da error XD me rio por no llorar
Lo acabo de grabar y me ha dado lo que he puesto arriba, y ahora que veo, SI se puede poner las dimensiones de la ventana, pasa que no puede estar ni maximizada, ni minimizada, tiene que estar normal :P
Application.WindowState = xlNormal
Application.Width = 400
Application.Height = 200
Saludos
Por curiosidad que version de office utilizas?
El problema no creo que sea que utilizo wdWindowState o xl, pero no se me ocurre donde la estoy cagando.
Novlucker gracias por todos tus apoprtes si se te ocurre que puede ser me salvas el culo ;)
La que aún usa todo el mundo ... 2003
Además de que los valores para los estados de la ventana te lo da el propio editor de VBA
Saludos
La verdad si pudiera utilizaria 2003 pero nos obligan a usar 2007 ya que corrige con ella y nos examina con ella. A parte los documentos en modo compatibilidad del 03 tratados en el 07 me estan dando mas de un disgusto.
JAJA encontre el fallo, os podeis creer que fuero por no poner: "unload userform1" :o
No veo muy claro el porque pero si asi no se me queja pues adelante con el.
Muchas gracias a todos por la atencion en especial a Novlucker ;-)
Si alguien necesitara codigo para para la gestion & manipulacion de de ventanas encatado os mando el codigo
Un saludo a todos los del foro.