- Este tópico contém 17 respostas, 3 utilizadores e foi actualizado pela última vez há 12 anos, 12 meses por peterboyy.
-
AutorArtigos
-
-
21 de Abril de 2011 às 13:20 #931peterboyyMembro
boa tarde, tenho um trabalho para entregar, e uma parte do trabalho consiste em dispor uma tabela num relatório em que apareçam aleatoriamente contratos que tenham diferenças de valores… eu apenas sei fazer a tabela aleatoria mas a aparecerem os valores e os que nao tem diferença ficam em branco.. como se omite essa informaçao? ja tentei em tabela dinamica mas nao dá quando ponho em omitir o 0… tou desesperado alguem pode ajudar?
abraço
-
21 de Abril de 2011 às 17:14 #1538patropiParticipante
boa tarde
para facilitar, vc poderia anexar a tua planilha zipada aqui no fórum.
um abraço
-
21 de Abril de 2011 às 20:32 #1540peterboyyMembro
ok eu vou enviar dois documentos… o pdf é como tem k aparecer no corpo de relatorio, o excel é as minhas inumeras tentativas…
acho que ainda vou chumbar a isto 🙁
Trabalho_Informatica_Pedro_Madeira.zip -
23 de Abril de 2011 às 0:24 #1541jorgerodAdministrador
boas, pedro,
sem me querer meter muito nestas coisas, acho que apenas alguma ajuda é permitida, não efectuar a resolução, senão é pernicioso…
bom, para começar, pode tentar criar-se um filtro, partindo do princípio que a tua tabela está ok.
código para o filtro, a juntar a um botão de comando:
sub macroteste1()
‘
‘ macroteste1 macro
‘‘
rows(“37:90”).select
selection.delete shift:=xlup
range(“o33”).select
range(“h13:i33”).advancedfilter action:=xlfiltercopy, criteriarange:=range( _
“q12:q13”), copytorange:=range(“h37:i37”), unique:=false
end sublegenda:
range(“h13:i33”) – É a tua tabela
range(“q12:q13”) – é o range onde tens a condição, ou seja:
em q12 – correspondencia
em q13 – 0range(“h37:i37”) – local para onde vais copiar a tabela filtrada.
atenÇÃo!!! isto é apenas um exemplo, um começo, não pretende ser a solução, ok?
-
23 de Abril de 2011 às 9:30 #1544peterboyyMembro
antes demais agradeço a vossa atençao.
eu ja havia criado uma tabela dinamica para testar o filtro mas ele da sempre correspondencias de 0 mesmo clicando na opçao de filtrar resultados = a o.
ja testei a macro que desde ja agradeço mas de igual forma da resultados = a 0 e nao apenas os resultados com diferenças.
nao sei o que isto podera ser… ja tentei uma formula apenas com procvºs e nada… :s
-
23 de Abril de 2011 às 15:05 #1545jorgerodAdministrador
pedro,
mas com a opção de 0, ainda assim te dá no filtro os valores iguais a zero? eu testei a macro que te enviei e todas as linhas que têm zero (0), não aparecem, só aparecem as de valor diferencial positivo e/ou negativo.
podes ver melhor? experimenta, na folha dif, tirar tudo o que lá tens e colocares o tal formulário de relatório, como se fosse o final e com a indexação à tabela que te dá os resultados. depois, se não te der nada, coloca aqui ouytra vez. É preferível do que estar muita coisa, porque deixa de se perceber o que se pretende.
fica bem.
-
23 de Abril de 2011 às 15:20 #1546peterboyyMembro
eu vou fazer um novo documento com tudo limpo e testar e ja envio como tenho feito!
-
23 de Abril de 2011 às 16:00 #1547peterboyyMembro
cá esta o novo doc! ja fiz o texto em cima para concatenar com os resultados obtidos…
na macro alterei para aparecer lado a lado pra se ver logo directamente… ela copia exactamente a mesma tabela e não exclui resultados diferentes de 0.
1) a tabela em relatório tem que obter aleatoriamente nr de contratos entre 23 a 39, contudo só podem aparecer os contratos que apresentem diferenças monetárias (sup ou inf a 0).
2) outro problema é que os números nao se podem repetir e a tabela dinâmica não funciona correctamente !
estou a desesperar 🙁
encontrei esta formula pra a aleatoriedade nao se repetir int((upperbound – lowerbound + 1) * rnd + lowerbound)
mas nao funciona :s e nao ha forma dos 0´s nao aparecerem 🙁
Pedro_Excel.zip -
23 de Abril de 2011 às 21:43 #1548jorgerodAdministrador
-
24 de Abril de 2011 às 14:37 #1550peterboyyMembro
boa tarde 🙂 foi uma grande ajuda essa macro! mto obrigado! criei o corpo do relatório e modifiquei nas células de destino do copy! e está a funcionar!
agora falta apenas uns ajustes para a pré visualização mas gravei uma macro em que aumento em % a visualização e fica quase perfeito :d
o ctrl+f2 nao funciona em macro… É pena
-
24 de Abril de 2011 às 15:39 #1551jorgerodAdministrador
olá, pedro!
ainda bem que que te foi útil, é sempre um enorme prazer conseguir ajudar!! 🙂
aliás, é para isto que serve todo um trabalho de backoffice, que é feito em nome do exceler… afinal, tem tudo a ver com a finalidade do site: ajudar!!!!
como sabes, o ctrl+f2, dá o denominado print preview, mas apenas em termos da execução normal do excel. vê, por exemplo, as shortcuts em:
todavia, se quiseres utilizar o print preview através da tua macro, podes adicionar o seguinte código:
activewindow.selectedsheets.printpreview
agora, um pedido: quando tiveres isso prontinho, podes mandar-me? se não quiseres colocar aqui, podes mandar-me para o meu e-mail pessoal: jorge.rodrigues@exceler.org.
seria, para mim, um enorme prazer, ter o resultado final do teu trabalho.
fica bem e diz qq coisa, ok?
-
26 de Abril de 2011 às 19:41 #1552peterboyyMembro
olá boa tarde !!
quero aqui agradecer todo o apoio prestado! foi sem dúvida essencial!
um abraço!
jorge: farei chegar ao teu email já a seguir!
mais uma vez,obrigado!
-
28 de Abril de 2011 às 21:24 #1549peterboyyMembro
boa noite,
colocando a hipotese da nao utilizaçao de filtragem, mas sim uma função que elimine a linha ao identificar valor 0, consigo ter o mesmo efeito transportando o resultado para um outro espaço (mantendo sempre a tabela original)? as funçoes do while..loop e do until..loop penso que dao resposta, mas alguém me pode ajudar a construir esta macro por favor?
eu confesso que tive uma tarde inteira a tentar e nao encontrei solução.
a unica que funcionou:
sub deletecells()
for each c in range(“coluna original”)
if c = “0” then c.entirerow.delete
nextend sub
nao elimina logo de uma vez todas as linhas que apresentam valores = o, e apaga de imediato a tabela original.
:s :s :s
-
28 de Abril de 2011 às 21:41 #1553peterboyyMembro
entretanto consegui por uma
mas… apaga sempre por completo a tabela… há forma de proceder esta macro para um espaço diferente, mantendo sempre a tabela original? se esta for alterada, automaticamente a macro iria assumir os novos valores certo?
-
28 de Abril de 2011 às 22:52 #1554peterboyyMembro
ja consegui!!!! ufaaa
-
28 de Abril de 2011 às 23:22 #1555jorgerodAdministrador
olá pedro,
podes postar o código?
obrigado.
-
28 de Abril de 2011 às 23:27 #1556peterboyyMembro
com base nesta macro
do while activecell.value “fim de arquivo”
if activecell.value = “” then
selection.entirerow.delete
else
activecell.offset(1, 0).select
end ifloop
end sub
adaptei a uma gravaçao et voi la :d
-
28 de Abril de 2011 às 23:31 #932peterboyyMembro
uma coisa boa que começo a descobrir do vba é que passos que parecem dificeis… vamos a uma gravaçao… simulamos e aproveitamos o resultado da gravaçao da macro e adapta-se ehehe
-
-
AutorArtigos
- Tem de iniciar sessão para responder a este tópico.