Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por CAMILOALVES
Posts
#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.
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#41131
Experimente:
Código: Selecionar todos
Sub 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
Posts
#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
Posts
#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
#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
Posts
#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
#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
Posts
#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
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#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
Posts
#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!
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord