- Este tópico contém 12 respostas, 3 utilizadores e foi actualizado pela última vez há 11 anos, 3 meses por Anónimo.
-
AutorArtigos
-
-
21 de Junho de 2013 às 23:39 #1335AlbinoParticipante
olá
peço desculpa por voltar com a mesma duvida de há uns tempos atrás, mas é que até agora ainda não consegui arranjar uma solução satisfatória.
È o seguinte:
pretendo que numa folha dividida em duas páginas as ultimas linhas sejam impressas nas duas páginas
ex.
folha com dados de a7:as55.
divisão da folha em a24:as24
final da folha a55:as55
linhas que deverão ser impressas nas duas páginas a45:as55peço desculpa mais uma vez, mas dava-me mesmo muito jeito uma ajudita.
ps: a impressão do rodapé não me resolve a questão.
obrigado
cumpriemtos.
albino -
22 de Junho de 2013 às 16:23 #2198jorgerodAdministrador
albino,
como diz (e bem…) o allen wyatt, – http://excelribbon.tips.net/t008189_multiple_print_areas_on_a_single_printed_page.html
a melhor possibilidade, é a utilização de uma printsheet, ou seja, copias para uma nova folha os ranges a7:as24 e as45:as55, de modo contínuo, para ser apenas uma printarea (ficaria, para impressão, por exemplo: a7:as34) e imprimes. depois, podes fazer o mesmo para o range a25:as55.
bom, não sei se me fiz entender… 🙂
-
25 de Junho de 2013 às 23:33 #2199AlbinoParticipante
olá jorge r.
como sugerias na tua resposta, resolvi aventurar-me e tentar resolver a questão.
gravei uma macros e acrescentei algumas instruções de vba e resultou mais ou menos no que queria.
há no entanto um senão, o meu ficheiro tem 12 folhas, uma por cada mês e da forma como eu fiz tenho de repetir 12 vezes o código, uma para cada mês. a minha pergunta é a seguinte:
não há forma de no código em vez de identificar folha por folha usar algo que se aplique á folha que está activa no momento. senão tenho de fazer 12 instruções cada uma com o nome de cada folha.
se não for pedir muito mando o ficheiro para se possivel aligeirar o código.
a forma que consegui fazer foi copiar – colar – imprimir e de seguida efectuar o mesmo procedimento.obrigado desde já.
cumprimentos
albino -
25 de Junho de 2013 às 23:44 #2200AlbinoParticipante
talvez agora vá o anexo.
-
25 de Junho de 2013 às 23:45 #2201AlbinoParticipante
-
28 de Junho de 2013 às 0:33 #2202jorgerodAdministrador
albino,
experimenta colocar logo no início do código, o seguinte pedaço:
dim sheetname as string
sheetname = activesheet.namedepois, em vez de escreveres o nome da folha (ex. jan, fev, etc…) escreves:
sheets(sheetname).select
para perceberes se a folha é aquela em que estás activo, podes utilizar, em termos de depuração temporária o seguinte, logo a seguir ao pedaço que te disse:
msgbox sheetname
experimenta e depois diz qq coisa, ok?fica bem.
-
28 de Junho de 2013 às 23:25 #2203AlbinoParticipante
boas
jorge.
apliquei a tua dica e acrescentei mais uma coisita para ficar melhorzito a meu ver claro.
Ás tuas linhas acrescentei palavreado extra para a msgbox, ficou assim:sub imprime_folha_activa
dim sheetname as string
dim resposta as integersheetname = activesheet.name
resposta = msgbox(sheetname & ” ” & “é a folha que quer imprimir?”, vbyesno, “atenção”)if resposta = vbyes then
else: exit sub…o restante código….
end subpara completar e seria a cereja no topo do bolo só falta que quando colo na print pag os meses com menos de 31 dias, as colunas que ficam em branco não aparecessem na impressão. fiz algumas tentativas gravando uma macro com a rotina de escolher as colunas em questão, mas acontecia que ocultava as colunas todas.
tentei usar este código imediatamente antes de cada impressão mas, dá erro 1004 não é possivel defenir a propriedade hiden da classe range.‘oculta colunas vazias
sheets(sheetname).select
if range(“af7”).value = “” then
columns(“af:ah”).hidden = true
else
columns(“af:ah”).hidden = false
end ifisso tambem é promenor, mas que ficava bem ficava.
obrigado
cumprimentos
albino -
30 de Junho de 2013 às 14:39 #2204jorgerodAdministrador
albino,
vê tenta adaptar: http://www.vbaexpress.com/kb/getarticle.php?kb_id=512
acho que te dará o resultado pretendido. e tiveres dificuldade, diz. de qq modo, diz se resultou, ok?
fica bem.
-
22 de Agosto de 2013 às 22:50 #2229AlbinoParticipante
boas
ficou sem esconder a coluna, mas está a funcionar.
obrigado -
11 de Setembro de 2013 às 14:49 #2263AnónimoInactivo
bom dia,
estou com dúvida sobre os códigos de vba para repetir linhas no fim da página do excel.
tenho um rodapé grande com várias células, imagem de logo, e preciso que se repita em todas as páginas.
alguém poderia ajudar? -
12 de Setembro de 2013 às 13:29 #2264jorgerodAdministrador
olá priscilla (é assim, não é? 🙂 ),
em primeiro lugar, terás que “dedicar” o teu logo, a uma célula de uma das linhas que pretendes repetir no teu footer. podes ver como, se acederes ao seguinte link: http://dmcritchie.mvps.org/excel/logoshd.htm.
depois, crias uma macro, que executarás quando pretenderes imprimir, claro, previamente à “ordem” de impressão. talvez consigas, se adaptares o seguinte código às tuas necessidades:
sub myfooter()
dim strftr as string, rng as range, sh as worksheet, c as range
set sh = worksheets(“folha1”)
set rng = sh.range(“a55:g55″)for each c in rng
strftr = strftr & c & ” ”
next cactivesheet.pagesetup.leftfooter = strftr
end sub
fica bem e diz qq coisa, ok?
-
26 de Setembro de 2013 às 19:37 #2267AnónimoInactivo
olá,
obrigada pela ajuda.
apareceu mensagem que intervalo estava errado.
problema no:set sh = worksheets(“folha1”)
posso te mandar arquivo?
grata
-
26 de Setembro de 2013 às 19:49 #1336jorgerodAdministrador
prix,
podes sim. manda.
-
-
AutorArtigos
- Tem de iniciar sessão para responder a este tópico.