Página 1 de 1

Macro para recortar linhas para outra planilha

Enviado: 23 Mai 2016 às 16:37
por jpomaga
Srs

Boa tarde!

Tenho 2 tabelas, uma em cada planilha, e preciso de uma macro que recorte determinadas linhas da Tabela A para a Tabela B. A seleção de quais linhas serão recortadas se dá previamente mediante a seleção do campo do Slicer logo acima da Tabela A.
Tentei fazer a macro utilizando o recurso Gravar Macro mas não consegui, deu certo da 1a vez , mas quando a tabela A cresce, a marco não funciona.
Na Plan2, os registros recortados da Plan1 devem ser colados à partir da primeira linha vazia ou após a última linha que contenha um registro. Se não tiver seleção no Slicer, ela deve exibir a mensagem: "Definir critério de arquivamento".
Alguém me ajuda , please!!

Re: Macro para recortar linhas para outra planilha

Enviado: 24 Mai 2016 às 08:23
por alexandrevba
Bom dia!!

O slice ou segmentador de dados vem da versão 2010 para frente é usado em conjunto com Tabela Dinâmica (e não recurso tabela).

No seu arquivo eu não conseguir encontrar o slice (não vi a TD).

Das duas uma ou o arquivo que vc postou não corresponde a sua dúvida ou há uma outra forma para fazer o que precisa e que não foi mencionada por vc, ou outros afins....

Se puder explicar melhor.

Att

Re: Macro para recortar linhas para outra planilha

Enviado: 24 Mai 2016 às 17:27
por FabioVBA
Prezado, boa tarde.

Pode por favor anexar uma planilha com exemplo em Excel do que deseja fazer, faço uma macro pra você e te explico como deve ser feito.

Re: Macro para recortar linhas para outra planilha

Enviado: 25 Mai 2016 às 22:40
por jpomaga
Alexandre

Meu Excel é 2013 e permite utilizar o slicer com tabelas também (formato "Tabela"), além das Tabelas Dinâmicas. No caso usei o formato tabela, mas isso não vem ao caso.

O problema é o que descrevi acima. Preciso que a macro recorte as linhas visíveis da Tabela A, após feito o filtro em uma das colunas por um determinado critério, e cole na outra tabela, montando assim uma espécie de" arquivo morto".
Na planilha que enviei, usei os slicers para facilitar o filtro. Espero que tenha ficado claro.

Fábio, anexei o arquivo no post inicial.

Aguardo ajuda e antecipadamente agradeço a atenção até aqui.

Re: Macro para recortar linhas para outra planilha

Enviado: 27 Mai 2016 às 12:57
por jpomaga
Pessoal

Pesquisando neste incrível forum, achei uma solução similar no post abaixo.

http://gurudoexcel.com/forum/viewtopic. ... 56&#p10956

Segue o arquivo com a macro adaptada. Obrigado a todos pela ajuda!

Re: Macro para recortar linhas para outra planilha

Enviado: 27 Mai 2016 às 13:08
por alexandrevba
Bom dia!!

Já que minha versão (2010 standard) não tem slice para tabelas, segue uma forma usando a célula.

Para adaptar ao seu caso tente usando o exemplo em:
http://www.contextures.com/excelslicersupdatevba.html
Código: Selecionar todos
Sub AleVBA_2173()
Dim loSource As Excel.ListObject
Dim loTarget As Excel.ListObject
Dim SourceDataRowsCount As Long
Dim TargetDataRowsCount As Long


Set loSource = ActiveSheet.ListObjects("Processos_Ativos")
Set loTarget = Worksheets("ArqMorto").ListObjects("Arquivo_Morto")
With loSource
    .Range.AutoFilter Field:=3, Criteria1:=Range("F7").Value
    SourceDataRowsCount = .ListColumns(1).DataBodyRange.SpecialCells(xlCellTypeVisible).Count
End With
With loTarget
    TargetDataRowsCount = .DataBodyRange.Rows.Count
    .Resize .Range.Resize(.Range.Rows.Count + SourceDataRowsCount, .Range.Columns.Count)
    loSource.DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
    .DataBodyRange.Cells(TargetDataRowsCount + 1, 1).PasteSpecial (xlPasteValues)
    Application.CutCopyMode = False
    'Para deletar o que foi enviado
    Application.DisplayAlerts = False
        loSource.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
    Application.DisplayAlerts = True
End With
End Sub
Att