Bom dia amigos,
Gostaria de uma ajuda.
Preciso realizar o cadastro de clientes, onde os dados estão em um intervalo nomeado "VENDA" da planilha "Cadastro"
Criei um botão (Cadastrar Venda) com uma macro que armazena os dados do intervalo numa variável (venda) e transfere para a última linha da coluna C de uma outra planilha ("Vendas").
Fiz a depuração com inspeção de variáveis e deu tudo certo até o ponto de transferir o valor, que é onde não consegui avançar
O código não transfere o intervalo inteiro, somente a primeira coluna. Como faço para transferir um intervalo inteiro através da função .value?
A planilha é mais complexa, mas só vou colar o código a que se refere esse tópico:
Sub Cadastrar_Venda() ' ' Cadastrar_Venda Macro ' [VARIÁVEIS] venda = Worksheets("Cadastro").Range("VENDA") colarvenda = Sheets("Vendas").Cells(Rows.Count, "C").End(xlUp).Offset(1, 0).AddressLocal Sheets("Vendas").Select On Error Resume Next ActiveSheet.ShowAllData Planilha2.Range(colarvenda).Value = venda End Sub
Acredito que não seja isso. Mas essa é a idéia que pretendo executar.
Agradeço a ajuda
Venda é uma range nomeada, então altere/corrija essa range
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Venda é uma range nomeada, então altere/corrija essa range
Exato Reinaldo. O intervalo mencionado é uma range nomeada.
Não entendi sua sugestão...
Experimente
Sub ReplicaDados() Range("VENDA").Copy Sheets("Vendas").Cells(Rows.Count, 3).End(3)(2) End Sub
Osvaldo
Experimente
Sub ReplicaDados() Range("VENDA").Copy Sheets("Vendas").Cells(Rows.Count, 3).End(3)(2) End Sub
Que bom que você pegou a idéia do quero fazer e melhorou a execução. Você resumiu meu código eliminando as variáveis, muito obrigado Osvaldomp.
Porém ainda não resolveu por completo, pois preciso que transcreva só os valores e desse modo está replicando as fórmulas
Pode me dar essa luz que faltou?
Veja se este atende.
Sub ReplicaDadosV2() Range("VENDA").Copy Sheets("Vendas").Cells(Rows.Count, 3).End(3)(2).PasteSpecial Paste:=xlPasteValues End Sub
Osvaldo
Veja se este atende.
Sub ReplicaDadosV2() Range("VENDA").Copy Sheets("Vendas").Cells(Rows.Count, 3).End(3)(2).PasteSpecial Paste:=xlPasteValues End Sub
Exatamente isso Osvaldomp. Muito agradecido cara. Sou amador ainda nisso tudo e com esse código vou poupar muitas linhas hehehe
Só uma última dúvida, ainda relacionado com o tópico, pra eu poder encerrar feliz rsrsr....
O que quer dizer o (3) e o (2) após o End no código?
O que quer dizer o (3) e o (2) após o End no código?
(3) equivale a (xlUp)
(2) equivale e Offset(1,0)
Osvaldo
Maravilha amigo Osvaldomp.
Muito agradecido.
Antes de criar o tópico dei uma procurada no assunto e não achei nada. Espere que este assunto ajude alguém que também precise desta função.
Abraço!