Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
Graph.AddExpression "Column(3)/Qt_Parcelas"
Aqui não seria
Graph.AddExpression "Column(3)/ "&Parcelas
??
do mesmo campo que vc ta usando no while Parcelas = Parcelas + 2
não entendi esse Qt_parcelas
Se abre o Editor é porque ta dando algum erro, posta a macro ai
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
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.
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
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).
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
aaah e se vc quiser apenas incluir a expressão no gráfico ja pronto
set Graph = ActiveDocument.GetSheetObject( "CH74" )
Graph.AddExpression "sum(valor)"
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).
Apenas para ampliar a questão...
Notei que ao retornar ao Qlikview, após o término da macro, todas as colunas assumem o último valor.
Ou seja, preciso encontrar uma forma de identificar o index da coluna que estou inserindo a expressão para que o cálculo afete apenas uma de cada vez.
Em resumo, vamos continuar a briga...rsrs