Ir ao conteúdo
  • Cadastre-se
mario2495

Excel Recortar linha de uma pasta e enfileirar em outra pasta de trabalho

Posts recomendados

Boa tarde Pessoal do Clube do Hardware.

Então, estou com dificuldades em desenvolver uma planilha que recorta dados de uma linha e é colada automaticamente em outra pasta de trabalho. 

A ideia é a seguinte:

A pasta de trabalho 1 é uma pasta de frequentes atualizações e que n pode passar de 10 linhas então criei um botão para cada linha pra recortar cada linha por vez

clicar em um botão que seleciona e recorta uma linha especifica, aqui usei o seguinte código para linha 4.

---------------------

Private Sub recorta_Click()
Range("A4:E4").Select
Selection.Cut
End Sub 

------------------------

O desafio pra mim esta em criar uma espécie de lista de eventos na segunda pasta de trabalho. 

A pasta de trabalho 1 haveria um botão com o papel  "Transferir"  onde assim que clicasse nesse botão ele copiaria essa seleção da pasta de trabalho 1 para a pasta de trabalho 2. Então eu queria fazer um código que fizesse uma verificação de célula vazia e enfileirasse automaticamente criando uma especie  lista de eventos dos dados que atualizei na planilha 1. eu queria abrir a planilha 2 somente quando eu quisesse consultar uma alteração antiga, sendo a planilha 1 a criação de novas possíveis alterações.

Espero que tenham entendido rsrs.

Desde ja agradeço a oportunidade e mostrar meu desafio.

 

att,

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de lhe propor alguma sugestão, segue um comentário.

O usual é a planilha que recebe os registros e a planilha que os armazena estarem ambas em um só arquivo Excel, o que facilita as operações de armazenamento dos dados.

Há alguma razão especial para você manter as duas planilhas em arquivos separados ?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta Osvaldo. O arquivo continua o mesmo mas em planilhas diferentes tipo Usual (Plan1) e a de consultas (Plan2) no messo arquivo chamado "Atualizações.xml", A questão é somente organizacional com intenção de tornar mais prático e menos poluído a planilha é uma atualização que fazemos ao mesmo tempo de algumas outras atividades e por isso deixamos muitas vezes passar batido alguma atualização por falta de atenção, e para contornar isso estou tentando deixa-la mais simples e ágio de atualizar e armazenar algum evento. Vou anexar um exemplo da planilha, o intuito é deixar o mais prático possível fazendo o uso de botões virtuais e amenizando uso de teclas. Quando concluo uma atividade eu pressiono e botão fica verde, quando finalizada eu recorto a linha em "COPIAR" e transfiro em uma lista de eventos "Transferir". O código que busco ajuda faria a tarefa de analisar a ultima linha vazia da lista e inserir os dados recortados nela, fazendo a planilha 2 somente para eventuais consultas.

image.thumb.png.ae9945e45fa9b52efb8b126c0a8c8d6f.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario, para facilitar a obtenção de ajuda disponibilize o seu arquivo Excel com alguns dados somente e explique nas próprias planilhas qual o seu objetivo. Imagens não servem.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario, vou ser direto e franco com você. A construção da sua planilha não está adequada, pra dizer o mínimo.

Você já colocou nela 87 botões e ainda faltam 9, ou seja, chegará a 96 botões. Nunca vi isso.

Da forma que ela está montada qualquer incremento de macro será pura gambiarra, ao menos na minha opinião.

 

Eu até tentei mudar a planilha pra oferecer uma alternativa, sem botões, pra você analisar, mas ao tentar deletar qualquer dos botões o meu Excel trava.

Então, se você tiver interesse disponibilize um novo arquivo Excel com a planilha Atualizações sem botões.

Quanto ao resultado que você pretende, está claro pra mim.

 

dica - com base na nomenclatura da Microsoft um Arquivo Excel ou uma Pasta de Trabalho Excel é composta por uma ou mais planilhas; me parece que você trata planilha como pasta de trabalho

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Osvaldo, são informações importantes que me tem passado. Aqui vai o arquivo sem os botões.

Não sou muito experiente, então qualquer sugestão que puder me dar ficarei muito feliz.

Inclusive ja estou estudando outras possibilidades. Tambem achei má ideia esses botões 

 

ALTERAÇÕES de DADOS.rar 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@osvaldomp Eu o parabenizo pelo trabalho, é exatamente o que eu precisava. Sem contar que a planilhas esta muito mais leve e dinâmica. Mais uma vez Obrigado. Precisando estou à disposição.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
16 minutos atrás, mario2495 disse:

@osvaldomp Sem contar que a planilhas esta muito mais leve e dinâmica.

 

Curiosidade: o seu arquivo com os botões acusava 84 kb e após a retirada os botões teve o tamanho reduzido para 31 kb.

Aí simplifiquei a planilha Atividades e acrescentei a macro, após isso o tamanho caiu para 23 kb.

 

A propósito, editei o meu post e acrescentei nos comentários que estão na planilha que as operações descritas são executadas via macro e o código está no módulo da planilha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @osvaldomp

 

Eu coloquei mais uma coluna com o título "Responsável" porém dei uma mexidinha aqui no código e não consigo fazer os dados dessa coluna serem transferido. Pode me ajudar novamente com isso ?

 

obrigado.

adicionado 43 minutos depois

Consegui resolver. Acrescentei uma nova linha e mudei alguns parâmetros.

O código ficou assim

--------------------------------

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Not Intersect(Target, Columns("F:K")) Is Nothing Then
  If Target.Interior.ColorIndex = 43 Then Target.Interior.ColorIndex = xlNone Else Target.Interior.ColorIndex = 43
   Cancel = True
  ElseIf Target.Column < 16 And Target.Value <> "" Then
   Cells(Target.Row, 6).Resize(, 6).Interior.ColorIndex = xlNone
   Cells(Target.Row, 1).Resize(, 5).Cut Sheets("atualizações ja realizadas").Cells(Rows.Count, 1).End(3)(2)
   Cells(Target.Row, 12).Cut Sheets("atualizações ja realizadas").Cells(Rows.Count, 1).End(3)(1, 6)
   Cells(Target.Row, 13).Cut Sheets("atualizações ja realizadas").Cells(Rows.Count, 1).End(3)(1, 7)
   Cancel = True
  End If
End Sub
----------------------------------

 

Valeu!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×