Home Excel - Dicas Microsoft Excel VBA Excel VBA - AutoFiltros Excel planilha vba autofiltro separa e transfere determinados ítens

Excel planilha vba autofiltro separa e transfere determinados ítens

E-mail Imprimir PDF

Saberexcel - O Site de quem precisa aprender Macros Microsoft Excel VBA

Esta Macro do Aplicativo Microsoft Excel VBA,  separa determinados dados e transfere para outra planilha

Option Explicit
 
Sub Transfere_Transforma_Dados()
    Dim vLivro As Workbook
    Dim vPlanDados As Worksheet, vPlanAuxiliar As Worksheet
    Dim vRangeUnica As Range, vRangeInicial As Range, rnData As Range
    Dim rnFilter As Range, rnFind As Range, rnSource As Range
    Dim vaField As Variant
    Dim i As Long, j As Long
    
    Set vLivro = ThisWorkbook
    
    With vLivro
        Set vPlanDados = .Worksheets("Pagamento")
        Set vPlanAuxiliar = .Worksheets("Auxiliar")
    End With
    
    With vPlanDados
        Set vRangeUnica = .Range(.Range("C1"), .Range("C65536").End(xlUp))
        Set rnSource = .Range(.Range("C2"), .Range("C65536").End(xlUp))
        Set rnFilter = .Range(.Range("A1"), .Range("D65536").End(xlUp))
        Set rnData = .Range("A1")
    End With
    
    With vPlanAuxiliar
        Set vRangeInicial = .Range("A1")
    End With
    
    Application.ScreenUpdating = False
    
     'First we sort the table.
    rnFilter.Sort Key1:=Range("C2"), _
    Order1:=xlAscending, _
    Header:=xlGuess, _
    Ordercustom:=1, _
    MatchCase:=True, _
    Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
       ' Then we create the unique collection of fieldnames.
    vRangeUnica.AdvancedFilter _
    Action:=xlFilterCopy, _
    CriteriaRange:=vRangeUnica, _
    CopyToRange:=Range("J1"), _
    Unique:=True
    
     'Read the unique collection into an array.
    With vPlanDados
        vaField = .Range(.Range("J2"), .Range("J65536").End(xlUp))
    End With
    
    With vRangeInicial
        .Value = "Request_ID"
         'Add the collection to the first row in the target-worksheet.
        .Offset(0, 1).Resize(1, UBound(vaField)).Value = Application.Transpose(vaField)
         'Add the Request-ID numbers to the first column in the target-worksheet.
        .Offset(1, 0).Resize(vRangeUnica.Rows.Count, 1).Value = vRangeUnica.Offset(1, -2).Value
    End With
    
     'Loop through the collection, set the condition and finally
     'transfer the data into the target-worksheet.


    For i = 1 To UBound(vaField)
        rnData.AutoFilter Field:=3, Criteria1:=vaField(i, 1)
        Set rnFind = rnSource.SpecialCells(xlCellTypeVisible)
        j = rnFind.Rows.Count
        vRangeInicial.Offset(1, i).Resize(j, 1).Value = rnFind.Offset(0, 1).Value
    Next i
    
    vPlanDados.AutoFilterMode = False
    
    Application.ScreenUpdating = False
    
    MsgBox "Concluido"
    
End Sub



Aprenda tudo sobre o Aplicativo Microsoft Excel VBA, sozinho, praticando com os produtos didáticos Saberexcel



    Baixe o exemplo de planilha contendo a macro acima
Excel vba autofiltro transfere determinados dados outra plan (24.95)

Última atualização em Qua, 10 de Agosto de 2011 08:06  

Adicionar comentário

"Jamais considere seus estudos como uma obrigação, mas como uma oportunidade invejável para aprender a conhecer a influência libertadora da beleza do reino do espírito, para seu próprio prazer pessoal e para proveito da comunidade." Albert Einstein


Código de segurança
Atualizar

PROMOÇÃO DIDÁTICOS SABEREXCEL



Adquira já o Acesso Imediato
à Area de Membros

Compra Grantida --- Entrega Imediata

Aprenda Excel VBA com Simplicidade de 
códigos e Eficácia, Escrevendo Menos e
Fazendo Mais.

'-------------------------------------'
Entrega Imediata:
+  500 Video Aulas MS Excel VBA
+  35.000 Planilhas Excel e VBA
+  Coleção 25.000 Macros MS Excel VBA
+  141 Planilhas Instruções Loops
+  341 Planilhas WorksheetFunctions(VBA)
+    04 Módulos Como Fazer Excel VBA
+  Curso Completo MS Excel VBA
+  Planilhas Inteligentes


Pesquisa Google SaberExcel

Publicidade Google

<script type="text/javascript"><!--

google_ad_client = "ca-pub-2317234650173689";

/* retangulo 336 x 280 */

google_ad_slot = "0315083363";

google_ad_width = 336;

google_ad_height = 280;

//-->

</script>

<script type="text/javascript"

src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

</script>

Publicidade

RSFirewallProtected


Google Associados

Depoimentos

Adicione Saberexcel Favoritos

 
 

Aprenda tudo sobre o Aplicativo Microsoft Excel VBA

Aprenda tudo sobre o Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel,


   Sobre as WorksheetFunctions Funções de Planilhas que retornam valores do VBA