Problema com macro e formula


#12

Baixa o modelo com os códigos prontos.controle de meta e risco 2019.xlsm (41,8 KB)


#13

depois você altera a mensagem de saída de lançamento de informações da maneira que preferir.


#14

Bom Dia William, desculpa o incomodo e muito obrigado pela força
Nao adianta, eu estou batendo a cabeca por uma coisa que tenho certeza que é mais simples que andar pra frente.
Neste caso se eu quiser copiar meu resultado que se encontra no topo da aba DIARIO, para a mesma aba Diaria, so algumas celulas ao lado como faço?
tentei criar um novo codigo me baseado nos codigos que vc fez man sem chance

Public Sub Lanca_Diario_Clique()
Dim DadosHome3 As ListObject 'Variaveis para a aba diario
Dim NovoDIARIO As ListRow

'Prepara os objetos para receber valores
Set DadosdIARIO = Sheets("DIARIO").ListObjects("tbDIARIO")
Set NovoDIARIO = DadosDIARIO.ListRows.Add
    
'Define os valores de cada coluna na tabela tbDIARIO
NovoDIARIO.Range(1, 1) = Sheets("DIARIO").Range("J7")
NovoDIARIO.Range(1, 2) = Sheets("DIARIO").Range("K7")
NovoDIARIO.Range(1, 3) = Sheets("DIARIO").Range("L7")
NovoDIARIO.Range(1, 4) = Sheets("DIARIO").Range("M7")
NovoDIARIO.Range(1, 5) = Sheets("DIARIO").Range("N7")
NovoDIARIO.Range(1, 6) = Sheets("DIARIO").Range("O7")

MsgBox "Cadastrado com sucesso.", vbInformation, "Lançamento de Histórico"
Sheets("DIARIO").Range("A7:G500").ClearContents

End Sub


#15

se for na mesma tabela e na mesma aba, não precisa criar um novo código, o que tem que ser feito e criar uma nova coluna na tabela que ja existe e depois acresentar essa celula no código VBA como por exemplo, NovoDIARIO.Range(1, 6) = Sheets(“DIARIO”).Range(“O7”)
NovoDIARIO.Range(1, 7) = Sheets(“DIARIO”).Range(“O7”) >>> ficaria assim, como acrescentei um novo campo na tabela preciso mudar no vba apontando para esse novo campo. isso e feito na mesma rotina e não necessariamente em outra rotina, so faria em outra caso essas informações tivessem que ser salvas em outra tabela ou outra aba, que pelo o que entendi não e o caso aqui. resumindo altera no mesmo codigo mais antes acresenta um novo campo na tabela por que o VBA esta reconhecendo o objeto tabela e não celulas normais do Excel, lembra que inserimos um objeto tabela então ele só reconhece o que estiver dentro dele.


#16

Bom Dia William, o que eu aueria fazer na aba Diario é a mesma coisa que vc fez na minha aba home, utilizando um botao para enviar os dados copiados a unica diferenca é que ele vai estar copiando informaca de uma aba para a mesma aba, eu tentei esse codigo, como vc explicou, mas nao tem jeito
Public Sub Lanca_Diario_Clique()
Dim Dadosdiario As ListObject
Dim NovoDIARIO As ListRow

'Prepara os objetos para receber valores
Set Dadosdiario = Sheets(“DIARIO”).ListObjects(“tbDIARIO”)
Set NovoDIARIO = Dadosdiario.ListRows.Add

NovoDIARIO.Range(1, 1) = Sheets(“DIARIO”).Range(“J4”)
NovoDIARIO.Range(1, 2) = Sheets(“DIARIO”).Range(“K4”)
NovoDIARIO.Range(1, 3) = Sheets(“DIARIO”).Range(“L4”)
NovoDIARIO.Range(1, 4) = Sheets(“DIARIO”).Range(“M4”)
NovoDIARIO.Range(1, 5) = Sheets(“DIARIO”).Range(“N4”)

MsgBox “Cadastrado com sucesso.”, vbInformation, “Lançamento de Histórico”
Sheets(“DIARIO”).Range(“A7:G500”).ClearContents
End Sub


#17

me reenvia ela aqui.


#18

é so isso que quero fazer


#19

Você quer pegar as informações de Diário e jogar na mesma aba mais em uma tabela diferente e isso?


#20

sim, pegar as informacoes onde contem os resultados e jogar em outra trabela na mesma aba e em seguida limpar a tadela onde conteve todas as informacoes anteriores


#21

ja tem essa tabela criada para onde deseja jogar essas informações?


#22

As informacoes que se encontram na tabela diario mais precisamente nas celulas A3 ate a E3 quero copialas para as celulas J4 ate M4 e em seguida gostaria que a tabela que se encontra abaixo das celulas A3 e E3 fossem limpas, dando espaco a uma nova tabela, isso seriam as minhas operacoes semanas, cada semana gostaria que elas voltassem a zero, entendeu?


#23

nesse caso temos um agravante pois essa tabela diario e alimentada todos os dias fazendo com que seja adicionado novos campos todas as vezes que e enviado uma nova informação. Para atender essa demanda sua agora tem que fazer um For each para procurar intervalos que contem valores e lançar na ultima célula vazia da tabela ao lado.


#24

e um código mais completo e complexo para você fazer pois esse que foi feito ele pega um intervalo especifico que não sofre alterações como incremento de novos campos, para essa outra situação sua ele não se aplica. ate mesmo com o gravador de macro fica ruim de fazer pois e necessário fazer varias verificações para pegar somente células que contem valores. por que essa tabela diário sempre vai sofrer alterações então o gravador de macro não vai funcionar 100%.


#25

é tao complicado assim? so queria que ele copiasse o valor total que se encontra no topo da aba Diario
ou seja o equivalente de uma semana e depois limpasse o campo


#26

você quer fazer isso todos os dias ou no ultimo dia da semana, se for no ultimo dia da semana você vai ver quantos lançamentos você faz e ate que célula fica preenchida e fazemos a adaptação desse mesmo código ai, do contrario tem que fazer outro.


#27

quero fazer isso todos os final de uma semana, mais o unico problema é que o numero de informacoes diarias pode mudar, 1 dia posso registrar 10 linhas e no proximo dia posso registrar 20


#28

imagem mais detalhado do que eu queria fazer


#29

Boa noite William,
Olhando esta ultima imagem que eu te mandei, la em cima no canto esquerdo voce pode perceber que tem um quadro onde se encontra um resumo do registro das operacoes certo? quantos pontos fiz, P/L etc… nesse quadro, eu criei uma lista suspensa na celula SEMANA, onde se encontra, W1,W2,W3 e W4 o “W” representa Week 1,2,3 …
Quando eu concluir 5 dias de operacoes ou seja W1 quero copiar essa informacao, para a mesma aba Diario, mas no quadro ao lado, la em cima no canto direito. Uma vez recolhida as informacoes das quatro semanas
W1
W2
W3
W4
Ou seja 1 mes quero enviar essa info para a aba mensal, basicamente vai ser a mesma coisa que o diario para o mensal


#30

me envia ela novamente pois não estou encontrando aqui no meu computador;


#31

http://ge.tt/4kZgXst2 ta na mao