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
#10933
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!!
#10950
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
#11028
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.
#11062
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
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