Ir ao conteúdo
  • Cadastre-se
FERNALIM1

Como transferir linhas entre abas da mesma planilha com VBA

Recommended Posts

Boa noite pessoal! Não entendo muito de VBA e gostaria de pedir uma ajuda de vocês para uma planilha que quero usar no trabalho.

Tenho na minha planilha as abas "invoices", "expenses", "pending","waiting approval" e "approved".

 

Gostaria que nas abas "invoices" e "expenses", ao colocar o status na coluna "J" as linhas até a coluna "I" fossem automaticamente recortadas e coladas para a planilha do relativo status.

 

COLOCAR PENDING - ENVIA PARA ABA PENDING COLOCAR OK- ENVIA PARA A ABA WAITING APPROVAL  COLOCAR APPROVED- ENVIA PARA A ABA APPROVED 

 

 

Muito obrigada desde já!

Controle Invoice e Expenses Fernanda11jan.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

@FERNALIM1

 

Por VBA até dá pra fazer o que precisa... mas ainda assim, por questões de estética, facilidade no manuseio e manutenção, você pode usar a aba 'invoices' como uma aba 'analítica', ou seja, com todos os registros de todas as invoices e, então, nas abas de status específicos, trabalhar com tabelas dinâmicas que terão como fonte a aba 'invoices'.

 

O que acha?

 

Já tentou trabalhar com tabelas dinâmicas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Instale o código abaixo nos módulos das planilhas "Invoices" e "Expenses", assim:
1. copie o código daqui
2. clique com o direito na guia da planilha de interesse e escolha 'Exibir código'
3. cole o código na janela em branco que vai se abrir
4. feito! 'Alt+Q' para retornar para a planilha e testar
Repita  a sequência acima para instalar no módulo de cada uma das duas planilhas (planilha é o que você trata de "aba", e o que você trata por "planilha" é Arquivo ou Pasta de Trabalho))
 

Private Sub Worksheet_Change(ByVal Target As Range) Dim LR As Long, wsD As Worksheet  If Target.Column <> 10 Then Exit Sub: If Target.Value = "" Then Exit Sub   If Target.Value = "OK" Then    Set wsD = Sheets("Waiting Approval")   Else: Set wsD = Sheets(Target.Value)   End If     With wsD      LR = .Columns("A").Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows, LookIn:=xlValues).Row      .Cells(LR + 1, 1).Resize(, 9).Value = Cells(Target.Row, 1).Resize(, 9).Value     End With     Cells(Target.Row, 1).Resize(, 9).ClearContentsEnd Sub


Sugestão - aplique Validação de Dados na coluna "J" das duas planilhas referidas a fim de evitar digitação incorreta o que provocará travamento do código.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fernanda, seja bem vinda ao forum!

 

Segue em anexo, conf. solicitado:
Ao inserir  valor  de status em uma linha, na coluna "J", a macro copia o intervalo das colunas  (A:J) e cola na respectiva planilha (aba ) e deleta a linha em que foi digitado
voce pode inserir  valores (status), em minusculo "pending" ou maiusculo "PENDING", ou ainda a 1ª letra em maiusculo "Pending"
abx.
 
 
 

 

Controle Invoice e Expenses Fernanda11jan-v1.zip

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@FERNALIM1

 

Por VBA até dá pra fazer o que precisa... mas ainda assim, por questões de estética, facilidade no manuseio e manutenção, você pode usar a aba 'invoices' como uma aba 'analítica', ou seja, com todos os registros de todas as invoices e, então, nas abas de status específicos, trabalhar com tabelas dinâmicas que terão como fonte a aba 'invoices'.

 

O que acha?

 

Já tentou trabalhar com tabelas dinâmicas?

Concordo com a solução do minoso, muitas vezes as pessoas não sabem lidar com dados da maneira mais eficiente e pedem ajuda p/ soluções 'capengas' quando poderiam estar mais abertos p/ inovar todo o processo de tratamento e exposição da informação.

 

Na pasta de trabalho anexada eu montei uma solução p/ uma planilha/aba apenas onde o controle de Segmentação de Dados (células B1:C4) filtra os dados q você quer destacar e é bem mais simples de administrar.

Controle Invoice e Expenses Fernanda11jan-1.xlsx

  • Curtir 1

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

×