HELP!! Macro de word en VB6.0

Iniciado por egrimm, 11 Febrero 2010, 12:10 PM

0 Miembros y 1 Visitante están viendo este tema.

egrimm

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


Novlucker

Entonces? adivinamos cual es el problema con la macro? :silbar:

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

egrimm

#2
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.

Novlucker

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
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

egrimm

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)

Novlucker

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
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

egrimm

#6
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

Novlucker

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

Código (vb) [Seleccionar]
Application.WindowState = xlNormal
Application.Width = 400
Application.Height = 200


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

egrimm

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 ;)

Novlucker

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
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein