Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por CAMILOALVES 12 Fev 2019 às 10:51
Membro 1 Estrela
Mensagens: 89
Reputação: 2
#41129
Bom Dia!
Solicito ajuda no sentido de verificar se há possibilidades quanto a copiar as fórmulas contidas nas células E53, I53, K53, L53, T53, U53, V53, W53, X53, Y53, AA53, AC53, AH53, AI53, AO53, AT53, AU53, AV53, AX53, AY53 na planilha “Banco de Dados” no momento que houver a inclusão dos dados ao se clicar no botão “inserir” contido na Essa inserção deverá ser de forma ilimitada, ou seja, a cada inclusão as cópias das respectivas fórmulas deverão ser incorporadas a planilha
Por exemplo: ao digitar os dados na planilha “INSERIR” e clicar no botão “inserir” as fórmulas de cada células seriam copiadas para as células E54, I54, K54, L54, T54, U54, V54, W54, X54, Y54, AA54, AC54, AH54, AI54, AO54, AT54, AU54, AV54, AX54, AY54 respectivamente e assim sucessivamente.
OBS: Como a planilha já contém vários dados iniciados na linha 4, a opção foi começar as cópias das células a partir da linha 54
Desde já agradeço pela ajuda.
Apenas usuários registrados podem ver ou baixar anexos.
Por osvaldomp 12 Fev 2019 às 12:37
Membro 5 Estrelas
Mensagens: 1147
Reputação: 573
#41131
Experimente:

Código: Selecionar todosSub CopiaColaFórmulas()
 Dim LR As Long
  With Sheets("Banco de Dados")
   LR = .Cells(Rows.Count, 1).End(3).Row
   .Cells(LR, 5).Resize(, 41).Copy .Cells(LR + 1, 5)
   .Rows(LR + 1).SpecialCells(2) = ""
  End With
End Sub
Por CAMILOALVES 12 Fev 2019 às 12:59
Membro 1 Estrela
Mensagens: 89
Reputação: 2
#41132
Prezado osvaldomp 12 Fev 2019 às 11:37
Favor informar em qual parte da planilha associo a sua macro, visto que as cópias das fórmulas devem ser de forma automática todas as vezes que dados forem incluídos na na planilha “Banco de Dados” através do botão "inserir" localizado na planilha "INSERIR".
Fico no aguardo
Desde já agradeço
Por CAMILOALVES 12 Fev 2019 às 13:30
Membro 1 Estrela
Mensagens: 89
Reputação: 2
#41133
Prezado osvaldomp 12 Fev 2019 às 11:37
Aloquei sua solução na planilha, funcionou só para primeira inclusão, quando faço nova inserção de dados dá na rotina: .Rows(LR + 1).SpecialCells(2) = ""
OBS: Conforme solicitação, As cópias devem ser permita até o término de linhas da planilhas (aproximadamente 1048576) porem as formulas só devem ser copiadas a cada inserção.
Daria para você fazer a gentileza de analisar?
Por osvaldomp 12 Fev 2019 às 15:19
Membro 5 Estrelas
Mensagens: 1147
Reputação: 573
#41137
O código que passei toma por base a última linha preenchida na coluna A, portanto na primeira vez que você rodar o código as fórmulas serão coladas na linha 54, se no entanto, nada for inserido em A54, na próxima vez que você rodar o código as fórmulas continuarão a ser inseridas na linha 54.

Se for essa a sua rotina então altere a linha conforme abaixo para verificar a última linha preenchida na coluna E.

LR = .Cells(Rows.Count, 5).End(3).Row
Por CAMILOALVES 12 Fev 2019 às 16:31
Membro 1 Estrela
Mensagens: 89
Reputação: 2
#41143
Prezado osvaldomp 12 Fev 2019 às 14:19
A Rotina é a seguinte: Acesso a planilha "INSERIR"; insiro os dados e clico no botão 'Inserir", após essa ação os dados migram para a planilha "Banco de Dados", os dados inseridos através da planilha "INSERIR" não contém formulas, as fórmulas são todas atribuídas na planilha "Banco de Dados" e estão localizadas na colunas E, I, K, L, T, U, V, W, X, Y, AA, AC, AH, AI, AO, AT, AU, AV, AX, AY respectivamente.
O objetivo é que as fórmulas só fossem copiadas para respectivas colunas / linhas após a ação de inclusão dos dados.
Essa rotina seria até o findar da planilha (linhas 1048576)
Aguardo sua análise
Por osvaldomp 12 Fev 2019 às 17:07
Membro 5 Estrelas
Mensagens: 1147
Reputação: 573
#41146
Prezado CAMILOALVES 12 Fev 2019 às 16:31

"O objetivo é que as fórmulas só fossem copiadas para respectivas colunas / linhas após a ação de inclusão dos dados."
É exatamente isso que faz o código que passei . Você decide o momento em que irá acioná-lo. Poderá chamá-lo a partir de qualquer código já existente, por exemplo, poderá chamá-lo a partir do código vinculado ao botão "inserir", como você comentou no primeiro post ("no momento que houver a inclusão dos dados ao se clicar no botão “inserir”).
E como já comentei antes, se houver dados na coluna A utilize a primeira versão, que irá reproduzir as fórmulas na linha logo abaixo da última linha com conteúdo na coluna A.
Você não consegue fazer isso?
Por CAMILOALVES 12 Fev 2019 às 18:18
Membro 1 Estrela
Mensagens: 89
Reputação: 2
#41149
Prezado osvaldomp 12 Fev 2019 às 16:07
Anexo Minhas Adaptações ao Seu Código, favor verificar qual o bug após clique no botão "INSERIR"
Desde já Agradeço
Apenas usuários registrados podem ver ou baixar anexos.
Por osvaldomp 12 Fev 2019 às 21:17
Membro 5 Estrelas
Mensagens: 1147
Reputação: 573
#41156
Prezado
Por CAMILOALVES 12 Fev 2019 às 18:18
Membro 1 Estrela
Mensagens: 72
Reputação: 1

O erro está ocorrendo porque a última linha com dados da planilha na qual você está aplicando o código está diferente da primeira planilha que você postou e que tomei como base para elaborar o código.
Assim, na primeira planilha você colocou dados e fórmulas na última linha, mas na atual não há dados, há somente fórmulas, por isso o erro. Aplique o código na sua planilha do primeiro post e você verá que funciona corretamente e sem erro. ;)

Para contornar acrescente a linha em vermelho conforme abaixo.

.Cells(LR, 5).Resize(, 52).Copy .Cells(LR + 1, 5)
On Error Resume Next
.Rows(LR + 1).SpecialCells(2) = ""
Por CAMILOALVES 13 Fev 2019 às 10:54
Membro 1 Estrela
Mensagens: 89
Reputação: 2
#41168
Prezado osvaldomp 12 Fev 2019 às 20:17
Funcionou Perfeitamente, Muito Obrigado Por Dispor Seu Tempo Para Me Ajudar!
DEUS lhe Pague e Continue Te Dando Inteligência e Paciência.
Grato!