12 Replies Latest reply: Dec 18, 2012 12:19 PM by chinga ramos RSS

    Macro

      Buenas tardes:

      Espero que alguien me pueda ayudar con la siguiente inquietud: Estoy construyendo una macro que me controle la semana actual del año pero no he podido a travez de la funcion Week(now()). He podido controlar el Year(now()), el Month(now()), etc, pero me aparece un error "Type mismatch: 'week' ". Espero que alguien me pueda ayudar u orientar.

      Gracias

        • Macro

          Edzamo,

           

          Das pocos detalles.

          Te recomiendo que mires las funciones de fecha y Hora en la ayuda de QV.

          En ellas tienes varias opciones para week.: week, weekname, weekyear, weekday...

          Las buenas practicas recomiendan usar mejor el today(), en vez del now().

          Saludos

            • Macro

              Sergio,

              Gracias por tu respuesta. Lamentablemente aun sigo teniendo inconvenientes. El tema es que estoy tratando de armar una macro que se active al seleccionar una pestaña de mi modelo. La macro debe identificar cual es la semana actual del año y en base a esto seleccionar las 4 ultimas semanas vigentes del año, para esto, estoy trabajando con el sigueinte script:

              Set T=ActiveDocument.Getfield("Semana")
              T.Select " "
              IF Week(now()) < "27" then
              ActiveDocument.Fields("Semana").ToggleSelect "26"
              ActiveDocument.Fields("Semana").ToggleSelect "25"
              ActiveDocument.Fields("Semana").ToggleSelect "24"
              ActiveDocument.Fields("Semana").ToggleSelect "23"
              END IF

              Esto me genera el siguiente error: Type mismatch: 'Week' y si cambio el now() por el today() me aparece Type mismatch: 'today'

              Ya probe con Weekyear y me presenta el mismo error. Espero que en esta ocacion sea un poco mas claro con lo que me esta pasando. Estoy utilizando Qv Enterprise 8.02

              Saludos,

                • Macro

                  Edzamo,

                  La siguiente macro te selecciona la semana en curso y las 4 anteriores del año en curso, si he entendido bien.

                   


                  Normal 0 21 MicrosoftInternetExplorer4
                  sub Semanas4
                  ActiveDocument.GetField("Year").Select ActiveDocument.Evaluate("year(today(1))")
                  ActiveDocument.GetField("Semana").Select ActiveDocument.Evaluate("'>' & num(week(today(1))-4) & '<=' & num(week(today(1)))")
                  end sub




                   

                  Logicamente tienes que tener un campo llamado Semana (Que será week('tufecha')).

                  La macro la puedes asociar a un botón o en las propiedades de la pestaña.

                  Saludos



                    • Macro

                      Sergio, muchas gracias. Con este script la macro esta corriendo muy bien. Nuevamente muchas gracias por tu pronta y acertada ayuda.

                        • Macro

                          Sergio; buen día

                          Estoy tratando de abrir un documento de qlikview desde otro documento. Para esto tengo un boton que llama el siguiente script:

                          Sub Financiero

                          ' VBScript
                          Set App = ActiveDocument.GetApplication
                          'Set newdoc = App.opendoc ("D:\Modelos BI\Financiero.qvw")
                          Set newdoc = App.Opendoc ("D:\Modelos BI\Financiero.qvw","","")
                          newdoc.Activate

                          End Sub

                          Este script me funciona muy bien desde Qv Enterprise, pero el problema se me presenta cuando abro el modelo base a traves de un portal web, pues cuando le doy clic al boton que abre el otro modelo, me sale un error "Fallo la comprobación de la macro. Se perdera la funcionalidad"

                          Creo entender que el cliente local no tiene la posibilidad de abrir el documento de qlikview desde la web.

                          Alguna sugerencia sobre como puedo resolver esto?

                          Gracias.

                            • Macro

                              Edzamo, Para abrir un archivo qvw es mejor que uses la funcion de lanzar del boton.

                              En la pestaña de Lanzar, le seleccionas el ejecutable del IE.

                              En los parametros le indicas el File://c:.....etc del path del archivo que quieras que te abra.

                              Saludos

                               

                               

                    • Re: Macro
                      Fidel Salgado

                      hola a todos

                       

                      mil disculpas por meter este tema aqui..... pero cuando la puse para que alguien me ayude no tuve exito espero alguien me pueda ayudar

                       

                       

                      Necesito Exportar a un Archivo de Texto dos tablas Que cree en QV, investigue y ya se como enviar UNA,

                      Pero No Puedo HACER  que se exporten dos tablas o mas en un Solo Archivo

                       

                      esta es la macro que tengo:

                       

                      Sub Guardar_en_Server

                      establecer tb = ActiveDocument.GetSheetObject ("CH01")

                      tb.ServerSideExportEx "C: \ Blog \ Tesoreria.xml", ";", 1

                      end sub

                       

                      LO QUE QUIERO HACER ES EXPORTAR CH01 CH02 CH03 A UN SOLO ARCHIVO COMO LO HAGO??????

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

                      O SI BIEN NO SE PUEDE HACER ESTO NECESITO ALGUNA MANERA DE TENER UNA TABLA EN QV QUE ME PERMITA TENER

                      UNA CABECERA

                      DETALLE

                      PIE

                       

                      POR EJEMPLO

                       

                      2012050840000                                                 CABECERA

                      DANNA       15             20       60

                      FIDEL         30             15       40                       DETALLE

                      NANCY       50             56       30

                      50304060                                                         PIE

                       

                      COMO HAGO UNA TABLA ASI EN QV..................

                       

                      LES AGRADESCO SU AYUDA

                        • Re: Macro

                          sub launchXL2 (archivo )

                           

                            

                           

                                    set oXL=CreateObject("Excel.Application")

                                    oXL.visible=false

                                    set wbLibro= oXL.Workbooks.Add

                            ' lista de controles a poner en el excel y cuales de estos son imagenes

                                    '---------------------------------------

                                    aSheetObj=Array("CH56","CH57","CH60","CH58","CH59","CS01")

                                    imagenes=Array("CH58","CH59","CH60")

                                    '---------------------------------------

                           

                                    for i= UBound(aSheetObj) to 0 step -1

                                              oXL.Sheets.Add

                                              img=false

                                              Set oSH = oXL.ActiveSheet

                                        oSH.Range("A1").Select

                             

                                        Set obj = ActiveDocument.GetSheetObject(aSheetObj(i))

                                                 

                               ActiveDocument.GetApplication.Refresh

                           

                              for j=0 to UBound(imagenes)

                                                  if aSheetObj(i)=imagenes(j) then

                                                            img=true

                                                  end if

                                        next

                                        if img=false then

                                                  'msgbox "tabla"

                                                  obj.CopyTableToClipboard True

                                                  oSH.Paste

                                                  sCaption=obj.GetCaption.Name.v

                                                  oSH.Rows("1:1").Select

                                                        oXL.Selection.Font.Bold = True

                           

                                                  oSH.Cells.Select

                                                  oXL.Selection.Columns.AutoFit

                           

                                                  oSH.Range("A1").Select             

                                                        oSH.Name=left(sCaption,30)

                                        else

                                                  'msgbox "imagen"

                                                  obj.CopyBitmapToClipboard

                                     

                                                  sCaption=obj.GetCaption.Name.v

                                                        oSH.Name=left(sCaption,30)

                                                  oSH.Paste

                                        end if             

                                       

                                        set obj=Nothing

                           

                           

                           

                                              set oSH=Nothing

                           

                                    next

                           

                              wbLibro.SaveAs archivo

                                    oXL.Quit

                           

                                    Set wbLibro=Nothing

                                    Set oXL=Nothing

                           

                          end sub

                           

                          sub enviar

                               launchXL2  "archivo.xlsx"

                          ensd sub