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.
  • Avatar do usuário
#63762
Boa Tarde!
Solicito ajuda para solucionar/implementar a rotina abaixo:
FUNCIONAMENTO ATUAL: Todas as vezes que for incluído um a variável na planilha "Cadastro de Produtos"
através do botão "Inserir ", os dados da célula C5 migram para coluna B da planilha "BDCadastro de Produtos";

SOLICITAÇÃO: que os mesmos dados da célula C5, também migrem para a planilha "BDCadastro de Produtos01" também para coluna B, seguindo a mesma lógica da planilha "BDCadastro de Produtos", ou seja, seria como uma réplica de dados.

OBS: Segue Planilha com Detalhes Para Analise.
Atenciosamente
Você não está autorizado a ver ou baixar esse anexo.
#63768
Estimado, eu fiz o seguinte

copiei a sub que está sendo chamada pelo seu botão lsIncluirDESCRIÇÃO_PEÇA e renomiei para incluirpeca2 conforme abaixo ( tirei a parte de limpar )

Private Sub incluirpeca2()

Dim lUltimaLinhaAtiva As Long
Set Reg = Sheets("BDCadastro de Produtos01")
Set Ins = Sheets("Cadastro de Produtos")
If Ins.Range("C5").Value = "" Then MsgBox "Descrição da peça em branco": Exit Sub
lUltimaLinhaAtiva = Reg.Cells(Reg.Rows.Count, 2).End(xlUp).Row + 1

If Application.WorksheetFunction.CountIf(Reg.Range("B7:B" & lUltimaLinhaAtiva), Ins.Cells(6, 1).Value) > 0 Then
MsgBox "Esta Classe já existe , Digite Outra": lsLimpaMovimento: Ins.Cells(6, 1).Select: Exit Sub

Else
'descrição da peça
Reg.Cells(lUltimaLinhaAtiva, 2).Value = Ins.Range("C5").Value
End If

End Sub

ahi na sub da macro, antes de limpar, chamei a incluirpeca2



Public Sub lsIncluirDESCRIÇÃO_PEÇA()
Dim lUltimaLinhaAtiva As Long
Set Reg = Sheets("BDCadastro de Produtos")
Set Ins = Sheets("Cadastro de Produtos")
If Ins.Range("C5").Value = "" Then MsgBox "Descrição da peça em branco": Exit Sub
lUltimaLinhaAtiva = Reg.Cells(Reg.Rows.Count, 2).End(xlUp).Row + 1

If Application.WorksheetFunction.CountIf(Reg.Range("B7:B" & lUltimaLinhaAtiva), Ins.Cells(6, 1).Value) > 0 Then
MsgBox "Esta Classe já existe , Digite Outra": lsLimpaMovimento: Ins.Cells(6, 1).Select: Exit Sub

Else
'descrição da peça
Reg.Cells(lUltimaLinhaAtiva, 2).Value = Ins.Range("C5").Value
End If

'' aqui chamar a funcao recem criada
Call incluirpeca2


'Limpa o movimento
lsLimpaMovimento01

End Sub


Espero que resolva no meu teste ele copia
CAMILOALVES agradeceu por isso
#63789
Bom Dia CursoDeExcelGratis - 14 Abr 2021 às 19:08
Primeiramente Obrigado Por Dispor de Seu Tempo Para Ajudar-me.
Implementei Seu Código na Planilha.
Então....A replicação dos dados entre as planilhas “BDCadastro de Produtos” e “BDCadastro de Produtos01” funcionou perfeitamente.
Mas.... Está ocorrendo um pequeno Bug, é o seguinte: quando digito dados na célula C5, e clico no botão “Inserir Descr.”, é exibida a mensagem: “código duplicado”, aí quando clico em OK da caixa de mensagem, a variável é incluída normalmente.
Se possível, peço que avalie, aguardo retorno.
Atenciosamente
#63794
Bom Dia CursoDeExcelGratis - 14 Abr 2021 às 19:08
Primeiramente Obrigado Por Dispor de Seu Tempo Para Ajudar-me.
Esqueci de anexa a planilha na 1ª mensagem.
Implementei Seu Código na Planilha.
Então....A replicação dos dados entre as planilhas “BDCadastro de Produtos” e “BDCadastro de Produtos01” funcionou perfeitamente.
Mas.... Está ocorrendo um pequeno Bug, é o seguinte: quando digito dados na célula C5, e clico no botão “Inserir Descr.”, é exibida a mensagem: “código duplicado”, porém quando clico no OK da caixa de mensagem, o código é incluído normalmente.
Se possível, peço que avalie, aguardo retorno.
Atenciosamente
Você não está autorizado a ver ou baixar esse anexo.
#63803
Por nada e fico feliz que tenha resolvido.
Realmente, eu tinha notado esse bug na sua planilha já, vou dar uma olhadinha e te retorno em seguida
CAMILOALVES agradeceu por isso
#63804
essa mensagem de código duplicado somente está no evento change da sua planilha

Private Sub Worksheet_Change(ByVal Target As Range)

este evento verifica que que cada um dos campos digitados na coluna C não se repitam na planilha BDCadastro de produtos, mas talvez não esteja correto essa trava, pois tem algumas informações que deveriam ser possiveis cadastrar em duplicidade, com por exemplo a unidade medida.

veja neste trecho
Select Case Target.Address
Case "$C$4"
Ncol = 1
Case "$C$5"
Ncol = 2
Case "$C$7"
Ncol = 3
Case "$C$8"
Ncol = 4
Case "$C$10"
Ncol = 5

para cada celula alterada é verificada uma coluna diferente , sugiro vc comentar as que podem ser duplicadas
CAMILOALVES agradeceu por isso
#63899
Bom dia! Prezado CursoDeExcelGratis - 15 Abr 2021 às 16:56
Primeiramente Obrigado por dispor de seu tempo e dedicação para ajudar-me.
Então.., A planilha original está projetada para funcionar de forma que os dados digitados nas células “C4”, “C5”, “C7”, “C8” e “C10” na planilha “Cadastro de Produtos” devem ser checados em relação a possíveis duplicidades contra a planilha “BDCadastro de Produtos”. Essas situações devem ser mantidas.
Surgiu porém a necessidade de criar-se uma planilha alternativa no caso “BDCadastro de Produtos01” com a finalidade de armazenar simultaneamente a variável digitada na célula “C5” da planilha “Cadastro de Produtos”. A macro desenvolvida por Você atingiu esse objetivo, ou seja, os da dados digitados em C5 (“Cadastro de Produtos”) migram de forma simultânea para as planilhas “BDCadastro de Produtos” e “BDCadastro de Produtos01”.
Porém..Está com aquele Bug já explanado anteriormente.
Se possível, peço que analise o bug e dê um feedback.
OBS: Para facilitar o envio da planilha anexo, resolvi deixar somente os botões “Inserir Classe” e “Inserir Descr.”, os demais incluo depois.
Atenciosamente.
#63901
CAMILOALVES escreveu: 14 Abr 2021 às 14:54 SOLICITAÇÃO: que os mesmos dados da célula C5, também migrem para a planilha "BDCadastro de Produtos01" também para coluna B, seguindo a mesma lógica da planilha "BDCadastro de Produtos", ou seja, seria como uma réplica de
Na Sub lsIncluirDESCRIÇÃO_PEÇA acrescente a linha em vermelho, conforme abaixo.
Else
'descrição da peça
Reg.Cells(lUltimaLinhaAtiva, 2).Value = Ins.Range("C5").Value

Sheets("BDCadastro de Produtos01").Cells(Rows.Count, 2).End(3)(2) = [C5]
CAMILOALVES agradeceu por isso
#63937
Bom dia, prezado CAMILOALVES - 20 Abr 2021 às 09:48

Que bom que resolveu.

Grato por nos informar.
CAMILOALVES agradeceu por isso
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