11 Replies Latest reply: Aug 28, 2014 12:57 PM by Luiz Cláudio Gomes RSS

    Execução de macro

    Luiz Cláudio Gomes

      Boa tarde

       

      Estou me aventurando com minha primeira macro.

      Por ser a primeira ainda estou me batendo um bocado...rsrs

      Criei a macro no editor...

      Coloquei a execução ao carregar (e tentei outras também)

      O módulo de segurança requerido está assinalado como "Acesso ao Sistema"

      Segurança local atual está assinada como "Permitir acesso ao sistema".

      Acontece que quando carrega o documento, é aberta a janela do editor de macros e a partir daí não sei o que está acontecendo.

      O que falta fazer?

       

       

      Luiz Cláudio

        • Re: Execução de macro
          rodrigo silvestre

          Se abre o Editor é porque ta dando algum erro, posta a macro ai

            • Re: Execução de macro
              Luiz Cláudio Gomes

              Segue a macro

               

              Sub Gera_expressao

              set Graph = ActiveDocument.Sheets("CH74").CreateLineChart

              Graph.AddDimension "$(Qt_Parcelas)"

              Graph.AddExpression "Column(3)/Qt_Parcelas"

              Qt_Parcelas = Qt_Parcelas + 2

              if Qt_Parcelas > 12 then exit Sub

              End Sub

                • Re: Execução de macro
                  rodrigo silvestre

                  Ta calma, o que você quer fazer com essa macro?  Se quiser postar o qvw fica mais fácil de achar o erro.

                  a dimensão ali é uma variável? porque vc ta trazendo o column(3) , nao é só o Qt_Parcelas que te interessa nesse caso? .. e porque aquele "then exit Sub" ? era pra acabar ali?

                   

                   

                  *Uma dica , eu sempre uso o : Msgbox("teste") como debug.. ex:

                   

                  Sub Gera_expressao

                  set Graph = ActiveDocument.Sheets("CH74").CreateLineChart

                  Graph.AddDimension "$(Qt_Parcelas)"

                  Graph.AddExpression "Column(3)/Qt_Parcelas"

                  Msgbox("teste")

                  Qt_Parcelas = Qt_Parcelas + 2

                  if Qt_Parcelas > 12 then exit Sub

                  End Sub

                   

                   

                  Se aparacer a mensagem "teste" numa janelinha na tela, antes dele voltar para o script da macro, quer dizer que o erro é pra baixo disso... isso sempre me ajudou bastante, nunca conseguir usar aquele debug la haha.

                    • Re: Execução de macro
                      Luiz Cláudio Gomes

                      A column(3) tem o valor do débito...

                      minha intenção é gerar outras expressões onde o valor do débito é calculado para mais parcelas.

                      fixei em 12 apenas para testar.

                      E agora percebi que não preciso adicionar a dimensão.

                      por isso retirei a linha Graph.AddDimension "$(Qt_Parcelas)"

                      A dica do msgbox valeu... o debug realmente não funciona...rsrs

                      e já está dando erro na primeira linha

                      set Graph = ActiveDocument.Sheets("CH74").CreateLineChart


                      Luiz Cláudio

                       

                        • Re: Execução de macro
                          rodrigo silvestre

                          voce quer criar outras expressões no mesmo gráfico, ou criar um gráfico novo com essas outras expressões??


                          isso :

                          set Graph = ActiveDocument.Sheets("CH74").CreateLineChart


                          cria um novo gráfico de linhas e ta dando erro porque ali onde tem CH74 na verdade vc vai colocar o nome da aba onde vc vai criar o gráfico


                          Sub teste

                           

                          set Graph = ActiveDocument.Sheets("Main").CreateLineChart

                          Graph.AddDimension "Cidade"

                          Graph.AddExpression "sum(vendas)"

                           

                          end Sub


                          Aqui eu estou criando um gráfico na aba Main, com dimensão Cidade e expressão sum(vendas).



                            • Re: Execução de macro
                              rodrigo silvestre

                              você pode adicionar varias expressões dai na criação desse gráfico, pra parcelas de 12, 24, 36 ... dai nao sei como voce vai definir isso

                                • Re: Execução de macro
                                  rodrigo silvestre

                                  aaah e se vc quiser apenas incluir a expressão no gráfico ja pronto

                                   

                                  set Graph = ActiveDocument.GetSheetObject( "CH74" )

                                  Graph.AddExpression "sum(valor)"

                                    • Re: Execução de macro
                                      Luiz Cláudio Gomes

                                      Fiz alterações na macro

                                       

                                      Sub Gera_expressao

                                      Dim Parcelas

                                      Parcelas = 4

                                      set Graph = ActiveDocument.GetSheetObject("CH76")

                                      set v = ActiveDocument.Variables("Qt_Parcelas")

                                      While Parcelas <=12

                                      Graph.AddExpression "Column(3)/Qt_Parcelas"

                                      Parcelas = Parcelas + 2

                                      v.SetContent Cstr(Parcelas),true

                                      msgbox(Cstr(Parcelas))

                                      Input = InputBox(i & " Type Q to quit")

                                      if Input = "q" or Input = "Q" then exit sub

                                      wend

                                      End Sub

                                       

                                      A variavel Qt_Parcelas teve que ser utilizada pois o calculo da dimensão estava se repetindo... estou atribuindo novo valor a ela e está funcionando.

                                      Mas o problema agora é outro.

                                      Quando executa a primeira vez é feito o calculo dividindo o total de column(3) por 4 (Qt_Parcelas)

                                      Mas quando incluí outra expressão, o calculo é feito correto mas o valor da expressão anterior (dividido por 4) é alterado para o mesmo valor (dividido por 6).