Respostas criadas no fórum
-
AutorArtigos
-
Albino
Participanteboas
jorgerod.
como sempre a coisa deu certo, no entanto tive de acrescentar uma pequena instrução, pois cada vez que executava o código o mesmo devolvia-me um erro não especifico “400” .
juntei “on error resume next” código “exit sub” e ficou a funcar
segue o código utlizado na integra .
o que ele faz:
-apaga conteudo que possa existir na folha onde vai colar os dados
– cola os dados da folha1 para determinadas celulas na folha2sub preenchercarta1()
application.screenupdating = false
sheets(“carta”).select
range(“s2,s4,s6,s9,a10:z11,q14,i15,q16,f18,q21,i22,q23,u22,u23,f24,q27,i28,q29,u28,u29,u30,p31,f32,q35,i36,q37,i38,n38,s38,f39,l42:l45,q42:q44,f46,a50:z55,o56”).select
selection.clearcontentsset rng1 = worksheets(“quadro”).range(“a3”)
set rng5 = worksheets(“quadro”).range(“c8”)on error resume next
set rng2 = rng1.offset(0, 2)
set rng3 = rng1.offset(0, 5)
set rng4 = rng5.offset(0, 1)
set rng6 = rng1.offset(0, 6)worksheets(“carta”).[s2] = rng2
worksheets(“carta”).[s4] = rng3worksheets(“carta”).[s6] = rng4
worksheets(“carta”).[s9] = rng6
application.screenupdating = true
worksheets(“carta”).select
range(“a11”).select
exit sub
end submais uma vez obrigado
ps. por uma questão de preciosismo, haveria a possibilidade de por o codigo a executar a mesma tarefa mas de celulas de origem diferentes? isto é as celulas a copiar estão localizadas na folha1 sempre a uma distancia entre elas de 6 celulas. as celulas que recebem os dados são sempre as mesmas.
o que eu fiz foi fazer tantas instruções como aquelas que queria neste caso 6.
se quiseres envio-te o ficheiro para colocares no forum.Albino
Participanteboas
jorge rod
o modo como actua o offset até que entendi e como tal, no meu código coloquei o local onde quero colar os dados depois de os copiar das celulas escolhidas. o meu problema é fazer com que o código vba funcione para essa função.
pois ao fazer com que o código escolha determinada celula e copie outras por macro, ele não avança.
mando-te um ficheiro exemplo do que pretendo, a folha 1 tem instruções do que pretendo..
desde já obrigado
albino
QuadroUrgenciaOBSTEMP.zipAlbino
Participanteolá wagner.
não sendo a pessoa mais indicada para ter dar dicas sobre o excel, pois sou mero aprendiz, mas tenho uma folha onde aplico um código que realmente desfazz o filtro anteriormente criado.
vê lá se te dá jeito.sub removefilter()
‘remove o filtro da folha2 se este estiver activado
sheets(“folha2”).activate
if activesheet.autofiltermode = true then
activesheet.autofiltermode = false
end if
end subdi< qqr coisa
abraço.
albinoAlbino
Participanteboas
jorgerod
…não consigo fazer um filtro por data, mais precisamente por mês. :s
através do filtro do excel consigo, no entanto queria arranjar código para adicionar a um outro que me efctuasse a pesquisa em determinada coluna onde inscrevo a data.
se fizer a pesquisa com a data exata consigo fazer.
o que eu quero é efectuar uma busca nessa coluna de todas as entradas de terminado mês. por ex:
coluna d entradas das datas pode ser no formato dd/mm/aaaa ou dd/jan/aaaa.
o resultado dessa pesquisa devolveria as linhas que fizessem referencia ao mês de fev por ex.
o ideal seria introduzir numa inputbox o mês desejado para efectuar o filtro de todas as entradas referentes a esse mês.
posteriormente essas linhas encontradas serão copiadas e coladas noutra folha para impressão.não consigo atinar com essa pesquisa.
abraço
albinoentão a ajudita é possivel? agradecia bem lá do fundo
obrigado..22 de Fevereiro de 2013 às 14:04 em resposta a: Códogo igual para botões diferentes dá erro 1004 #2111Albino
Participanteboas
jorgerod
agora sim lembro-me, até porque adaptei o mesmo a uma outra folha que criei para fichas de consulta médica.para este projecto isso não me vai ser util, até porque já está quase pronto, só me falta uma coisa que não consigo encontrar forma de o fazer, que é um filtro por data, mais precisamente por mês.
através do filtro do excel consigo, no entanto queria arranjar código para adicionar a um outro que me efctuasse a pesquisa em determinada coluna onde inscrevo a data.
se fizer a pesquisa com a data exata consigo fazer.
o que eu quero é efectuar uma busca nessa coluna de todas as entradas de terminado mês. por ex:
coluna d entradas das datas pode ser no formato dd/mm/aaaa ou dd/jan/aaaa.
o resultado dessa pesquisa devolveria as linhas que fizessem referencia ao mês de fev por ex.
o ideal seria introduzir numa inputbox o mês desejado para efectuar o filtro de todas as entradas referentes a esse mês.
posteriormente essas linhas encontradas serão copiadas e coladas noutra folha para impressão.não consigo atinar com essa pesquisa.
no final de tudo pronto n~ºao me importo de colocar aqui o ficheiro ou os códigos .
abraço
albino21 de Fevereiro de 2013 às 18:49 em resposta a: Códogo igual para botões diferentes dá erro 1004 #2109Albino
Participanteboas.
jorgerod
está perfeito para este evento. :whistle:no que toca a copiar os dados ecolar na outra folha, resolvi a questão da seguinte forma numa zona da folha a copiar fiz equivalencias(=) de celulas ficando todos os dados numa linha, depois foi só aplicar o colar na outra folha.
lembro-me da dita folha “infantário” e tenho-a guardada algures, mas como não fui a usa-la, mas sim um colega meu já não melembrava que tinha informação para o transporte de dados.
se não te der muito trabalho podes postar o código. :sobrigado
cmpts
albino17 de Fevereiro de 2013 às 22:28 em resposta a: Códogo igual para botões diferentes dá erro 1004 #2106Albino
Participanteboas
jorgerod.em relação ao dito botão realmente a questão ficou resolvida, está a funcionar.
no que toca á pesquisa, realmente funciona com o teu código e segundo os parametros que introduzis-te, mas a minha ideia seria efectuar a pesquisa pelo nº da factura e não pelo seu estado.
portanto teria de ter a opção de colocar o nº da factura para efectuar a sua pesquisa.
eu tentei adaptar o teu código ao meu, mas não funcionou.
ei-lo:sub pesquisar_click()
dim myname ‘introduzi
with sheets(2)myname = inputbox(prompt:=”digite o nome para filtro ou carregue em ok para remover filtro”, title:=”filtra por nome”)’ introduzi
.autofiltermode = false
.range(“c3″).autofilter field:=3, criteria1:=”*” & myname & “*” ‘alterei
.activatesheets(“folha1”).select
range(“e2”).selectend with
end subserá que, é pelo facto de o campo pesquisado ser numero e não letra?
no caso concreto quero que pesquise na coluna3 quando se introduz o nº da factura na msgbox.obrigado desde já.
cmpts
albino15 de Fevereiro de 2013 às 17:59 em resposta a: Códogo igual para botões diferentes dá erro 1004 #2103Albino
Participanteboas
jorgerod.
aqui vai então a planilha.
já agora pedia-te que desses uma vista de olhos ao código da pesquisa que tentei criar.
na folha1 tem algumas explicações de como pretendo que isto funcione.
obrigado.como não sei qual é vai nas duas extensões comprimido.
Formulrio.zipAlbino
Participanteboas.
jorgerod.epá não consigo acertar com a coisa.
este código
sub myfooter()
dim strftr as string, rng as range, sh as worksheet, c as range
set sh = worksheets(“folha1”)
set rng = sh.range(“a35:ah45 “)for each c in rng
strftr = strftr & c & ” ”
next cactivesheet.pagesetup.leftfooter = strftr
end subdevolve-me um erro run-time 1004, no entanto, como faço para activar o mesmo? tenho de criar um modulo e criar um botão para executar a macro? (não me dava muito jeito) uma vez que quem vai imprimir o fará atravez do imprimir rápido ou imprimir do botão ficheiro.
para complicar ainda mais, isto terá de servir para 12 folhas o que quer dizer que há necessidade de que isto funcione só para a folha activa no mento da ordem de impressão.recapitulando:
não sei se este será o caminho mais certo, o que eu quero é que me apareçam xis linhas do fundo da folha em todas as páginas dessa folha.
as linhas do inicio é fácil, pois o excel tem essa opção, agora as do fim??!!obrigado
Albino
Participanteboas
victor, obrigado pela resposta.talvéz não me tenha explicado bem.
o que pretendo é que em todas as páginas impressas da mesma folha se repitam por ex. as linhas 1 a 6 no inicio e que se repitam as linhas 35 a 45 no final de cada página.
isto para quê? vou dar exemplo concreto:
introduzo informação nas celulas a7:ah34, em a35:ah45 aparece informação resultante de somas e outras referentes ao intervalo acima descrito.
como são muitas linhas não vai caber numa só pag., daí haver a necessidade de dividir em duas páginas, por hipotese da linha 1 até á 26 e da 27 á 45 .
como o intervalo a34:ah45 tem informação importante desejava que essa informação se repetisse tambem quer na pag1, quer na pag2.
o intervalo a repetir seria a35:ah45.
pag impressaão a1:ah26 +a34:ah45
pag2 impressão a1:ah6 + a27:ah45
o problema é que a informação da range a35:ah45 não da para colocar no rodapé, senão estava resolvido.cmpts
albinoAlbino
Participanteboas
jorgerod
funcionou, aliás não era de esperar outra coisa.
pelo que observei faltava-me “vba.format”esta forma sempre é mais fácil que a dos brazucas, tem menos código.
obrigado
abraçoAlbino
Participanteboas
jorgerod
tentei adaptar assim:private sub textbox7_exit(byval cancel as msforms.returnboolean)
with textbox7
textbox7 = format(textbox7, “[<=999999999]### ### ###;(###) ### ### ###")
end with
end subuma vez que o nome da textbox é "textbox7" , mas não deu resultado o formato devolvido é 000000000
resolvi a questão alterando o código original para:
private sub textbox7_keypress(byval keyascii as msforms.returninteger)
dim strvalid as string
strvalid = "0123456789"
if instr(strvalid, chr(keyascii)) = 0 then
keyascii = 0else
if len(textbox7) = 3 then textbox7 = mid(textbox7, 1, 3) & " "
if len(textbox7) = 7 then textbox7 = textbox7 & " "
if len(textbox7) = 11 then textbox8.setfocusend if
end sub
obrigado na mesma e fica bem
abraçoAlbino
Participanteboas
jorgerod
experimentei das duas formas, com o enableevents e sem o mesmo, no entanto por vezes, não segue as instruções e não apaga as celulas em questão.
o trabalho que dá, é só fechar o ficheiro guardar e voltar a abrir e aí já funciona.
não consegui descobrir em que situação é que ele emperra, mas para já funciona.uma outra questão, neste mesmo ficheiro tenho algumas listas pendentes, o que acontece é, quando activo a celula onde elas estão colocadas aparecem-me sempre em primeiro lugar as linhas em branco que essas listas têm.
não há maneira de por defeito e, se essa celula estiver em branco, quando eu clicar na lista me devolver a primeira linha (supostamente a que contem o 1º nome da lista) dessa mesma lista e não uma em branco?
mesmo marcando a caixa de “ignorara lcelulas em branco”, ao activar a lista devolve uma linha em branco.desculpa lá ser chato.
abraço
albinoAlbino
Participanteboas.
jorgerodlá consegui adaptar o código para fazer o que eu pretendia, no entanto por vezes não executa.
tenho de fechar o ficheiro gravar e voltar a abrir e, aí já funciona novamente.ficou assim:
private sub worksheet_change(byval target as range)
application.enableevents = false
‘ o prtendido é que ao modificar a celula ae9 todas as outras mencionadas sejam limpas
if target.address = “$ae$9” then
application.enableevents = falsefor each cell in sheets(1).range(“c12, j17, n20, y20, aj20”).cells
cell.mergearea.clearcontents
next cell
end ifapplication.enableevents = true
end sub
abraço
albinoAlbino
Participanteolá jorgerod
não funciona.
posso mandar por email no entanto não encontro o teu endreço.
podes mandar para o meu
perdido34@gmail.com
depois envio-te o raio do ficheiro. grrr
o brigado e boa páscoa
abraço
albino -
AutorArtigos