- Este tópico contém 9 respostas, 3 utilizadores e foi actualizado pela última vez há 12 anos, 3 meses por
Anónimo.
-
AutorArtigos
-
-
4 de Junho de 2011 às 21:28 #949
patropi
Participanteboas, jorge
precisava de uma código que copiasse as fórmulas da linha anterior das colunas “c”; “d”; “i” e “j” ,quando fosse digitado na coluna”a”
por exemplo: eu vou para uma linha nova, quando digito na célula da coluna a, o código já copia as macros da linha anterior
se não me fiz entender é só perguntar.
um abraço.
-
5 de Junho de 2011 às 0:21 #1618
jorgerod
Administradorpodes mandar uma planilha com o exemplo? É que não se percebe em que célula da coluna a se digita, ou se é em qualquer célula da coluna a.
tenta explicar melhor.
-
5 de Junho de 2011 às 14:05 #1627
patropi
Participantejorge
É em qualquer célula da coluna a, conforme eu for criando uma nova linha as fórmulas já sejam copiadas para a nova linha.
um abraço.
-
5 de Junho de 2011 às 16:49 #1629
Anónimo
Inactivoveja este ficheiro que envio com uma pequena simulação que fiz.
o truque esta em depois de programar uma linha com as formulas necessárias, gravar uma macro para retirar a sintaxe em vba das formulas em excel depois adaptamos em termos de offset para serem reprogramadas as células nas colunas correctas, usando o evento change da folha de calculo onde se encontra a tabela.
o código para este exemplo que anexo será então:
private sub worksheet_change(byval target as range)
if not intersect(target, columns(“a:a”)) is nothing then
activecell.offset(0, 2).formular1c1 = “=rc[-3]*(100%-rc[-1])”
activecell.offset(0, 3).formular1c1 = “=+rc[-1]*rc[-3]”end if
end sub
abra o exemplo que anexo e vá introduzindo na coluna a o prç unit. e verá que as colunas d e e ficaram reprogramadas com as formulas respectivas e por ai abaixo à medida que for introduzindo valores na coluna a.
se tiver dificuldade em adaptar não há como postar um exemplo simulado da sua realidade para nós ajudar-mos.
[attachment:2]c:fakepathexceler_patropi_help.zip[/attachment]
-
5 de Junho de 2011 às 16:57 #1631
jorgerod
Administradorboas,
o exemplo do código que apresento, obriga a que, ao digitares um valor qualquer numa célula da coluna a (que deverá ser sempre a 1ª célula vazia abaixo), tenhas que dar enter.
por exemplo: supondo que tens a célula a1 preenchida, sendo que as células c1 e d1 e i1 e j1 contêm as tais fórmulas que queres copiar para c2, d2, i2 e j2. então, terás que digitar qualquer coisa em a2 e dares enter, o que quer dizer que a célula activa passará a ser a a3.
crias um botão de comando na tua planilha ( formatado em propriedades como ) e associas-lhe então este possível código:
option explicit
sub rectânguloarredondado1_click()
dim mynum as integer
dim msg as stringfor mynum = 1 to 50
if activecell.address = range(“a” & mynum).address then
activecell.offset(-1, 0).select
activecell.offset(0, 2).select
range(activecell, activecell.offset(0 – 1, 3)).copy destination:= _
sheets(1).range(“c” & rows.count).end(xlup).offset(1, 0)
activecell.offset(0, 6).select
range(activecell, activecell.offset(-1, 7)).copy destination:= _
sheets(1).range(“i” & rows.count).end(xlup).offset(1, 0)‘ msg = msgbox(prompt:=”copiou com sucesso”, title:=”informação”)
end ifnext mynum
end sub
experimenta e diz qq coisa.
outras possíveis soluções são bem-vindas!!! 😉
-
6 de Junho de 2011 às 0:56 #1633
patropi
Participantevg-excel-gest
obrigado pela resposta mas eu não consegui ter acesso ao ficheiro que vc anexou.
jorge
como eu sou iniciante em vba em não consegui fazer funcionar o teu código. vou tentar anexar um ficheiro.
-
6 de Junho de 2011 às 7:15 #1634
Anónimo
Inactivovai uma solução tendo em conta o ficheiro anterior que não ficou anexado, usei a mesma técnica.
-
6 de Junho de 2011 às 16:52 #1635
patropi
Participanteboas, vg-excel-gest
sim é isto mesmo que eu quero. só um detalhe, daria para fazer sem pular 1 linha.
por exemplo eu preenchi a próxima linha da coluna a6 e as fórmulas deveriam ser copiadas para as células c6, d6, i6 e j6 mas estão sendo copiadas para as células c7, d7, i7 e j7.muito obrigado!
-
6 de Junho de 2011 às 20:31 #1636
Anónimo
Inactivopeço desculpa mas às vezes a falta de tempo não nos permite testar convenientemente.
envio de novo o ficheiro com uma alteração, agora para dar certo terá depois de introduzir na coluna a, clicar “enter”, coloquei antes dos códigos que programam as formulas uma instrução para após premir enter deslocar-se para a direita.
os códigos para programar as formulas foram alterados, sendo que estes copiam as formulas da linha anterior para a linha activa, podendo alterar as formulas sempre que quiser que serão copiadas as formulas sejam elas quais forem.
-
6 de Junho de 2011 às 21:39 #950
patropi
Participanteboas,
ficou perfeito! só tenho a agradecer pela vossa pronta resposta.
merece um ponto no karma.
um abraço
-
-
AutorArtigos
- Tem de iniciar sessão para responder a este tópico.