Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Q&A with Qlik - Qlik Cloud Migration: Questions about migrating to Qlik Cloud? Catch the latest replay!
cancel
Showing results for 
Search instead for 
Did you mean: 
carlosac
Creator II
Creator II

MACROS EN MISMA HOJA


Buenas

Alguien sabe si e pueden tener 2 botenes , cada uno con macros distintas en la misma hoja????

Tengo una que guarda los datos y otra que hace un zoom , pero cuando las pongo en la misma hoja solo funciona 1 de ellas....

1 Solution

Accepted Solutions
soniacoprosa
Creator
Creator

Hola Galván,

Decirte que tan poco las macros son lo mío, sólo las utilizo en contadas ocasiones.

Suponiendo que tus 2 subrutinas te funcionan como dices por separado, lo único que tendrías que hacer es poner en cada botón una acción “Ejecutar macro” y en  “Nombre de macro” el nombre de la subrutina correspondiente.

Por ej.:

Supongo que no has puesto todo el código de la subrutina del zoom, no? He intentado ponerla en un botón y no funciona. Si buscas en la pag. de QV “macro zoom” verás que hay algunas.

Esta por ej:

sub ResetZoom15

          set mySheet = ActiveDocument.ActiveSheet

          set sp = mySheet.GetProperties

          sp.ZoomFactor = sp.ZoomFactor*1.5

          mySheet.SetProperties sp

end sub

Un saludo,

View solution in original post

7 Replies
soniacoprosa
Creator
Creator

Hola,

Si que se puede. Yo los tengo en varios proyectos sin problemas.

carlosac
Creator II
Creator II
Author

Hola Sonia, podias anexarme algun ejemplo con 2 botones o decirme como lo haces, porque cuando creo el segundo boton me aparece la macro de la primera....

soniacoprosa
Creator
Creator

Hola Galván,

Te pondré un ej. con 3 botones: Todo, Anual y Comparativo. Estos botones ejecutan distintas macros.

Para el botón “Todo”, en Propiedades, pestaña acciones: tengo 2 acciones ejecutar macro, primero ejecuta la macro “EnableA3” y después “HideSelectTodo” que previamente he creado en el editor de módulo.

Te pongo las macros del botón “Todo”:

' OCULTAR COLUMNAS EN LSTDO. VALORADAS - A3

' Muestra todas las columnas para listado Valoradas A3

Sub EnableA3

set doc = ActiveDocument

set s = doc.GetSheetObject("CH728")

set propS = s.getProperties()

'Esto lo que hace es habilitar la expresión (le pone la marca en el objeto)

' NOTA: las expresiones empiezan en la cero!!

exprD = propS.Expressions.Item(0).Item(0).Data.ExpressionData

exprD.Enable = true

exprD = propS.Expressions.Item(1).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(2).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(3).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(4).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(5).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(6).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(7).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(8).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(9).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(10).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(11).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(12).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(13).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(14).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(15).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(16).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(17).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(18).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(19).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(20).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(21).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(22).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(23).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(24).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(25).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(26).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(27).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(28).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(29).Item(0).Data.ExpressionData

exprD.Enable = true    

exprD = propS.Expressions.Item(30).Item(0).Data.ExpressionData '

exprD.Enable = true

exprD = propS.Expressions.Item(31).Item(0).Data.ExpressionData '

exprD.Enable = true

s.setProperties propS

end sub

sub HideSelectTodo

      set v = ActiveDocument.GetVariable("vSelectTodo")

      v.SetContent 0,true

end sub

Para los otros 2  botones sería algo similar, con otras macros.

Un saludo,

carlosac
Creator II
Creator II
Author

Hola Sonia, perdona de nuevo pero no me aclaro mucho. Te comento.

Tengo 2 acciones y queria crear para ello 2 botones independientes.

La primera es:GUARDAR LO SELECCIONADO DE UNA TABLA EN UN FICHERO XML

Sub Guardar_en_Server
set tb = ActiveDocument.GetSheetObject("TB03")
tb.ServerSideExportEx "SeleccionrefGabi.xml" , ";" , 3 '0=HTML, 1=Text, 2=Bitmap, 3=XML, 4=QVD, 5=BIFF: posibles formatos de grabación
end sub

Y el segundo boton es un ZOOM A PANTALLA

Sub FitZoom()

  1. ActiveDocument.ActiveSheet.FitZoomToWindow

End Sub

No se como hacerlo porque estoy muy pez

soniacoprosa
Creator
Creator

Hola Galván,

Decirte que tan poco las macros son lo mío, sólo las utilizo en contadas ocasiones.

Suponiendo que tus 2 subrutinas te funcionan como dices por separado, lo único que tendrías que hacer es poner en cada botón una acción “Ejecutar macro” y en  “Nombre de macro” el nombre de la subrutina correspondiente.

Por ej.:

Supongo que no has puesto todo el código de la subrutina del zoom, no? He intentado ponerla en un botón y no funciona. Si buscas en la pag. de QV “macro zoom” verás que hay algunas.

Esta por ej:

sub ResetZoom15

          set mySheet = ActiveDocument.ActiveSheet

          set sp = mySheet.GetProperties

          sp.ZoomFactor = sp.ZoomFactor*1.5

          mySheet.SetProperties sp

end sub

Un saludo,

carlosac
Creator II
Creator II
Author

Gracias Sonia, he cambiado lo que me comentas y ahora funciona perfectamente. La verdad es que me has ayudado y monton y perdona por las molestias.

soniacoprosa
Creator
Creator

De nada. No ha sido ninguna molestia.