Adicionado em: | 15/05/2011 |
Modificado em: | 15/05/2011 |
Tamanho: | Vazio |
Downloads: | 1388 |
Saberexcel - o site de quem precisa Aprender Macros Microsoft Excel VBA.
Essas códigos(Macros) do Aplicativo Microsoft Excel VBA(Visual Basic Application), filtra determinados dados, e mostra o layout de impressão
dos dados filtrados, observe que fiz vários macros para cada critério, mas isso poderia ser bem mais simples, se voce indicasse um valor de uma célula.
Sub Filtrando_Funcionarios_senhores()
Sheets("Funcionários").Select
Selection.AutoFilter Field:=2, Criteria1:="Senhor"
ActiveWindow.SelectedSheets.PrintPreview
Selection.AutoFilter Field:=2
ActiveWindow.SelectedSheets.PrintPreview
Selection.AutoFilter Field:=2
Sheets("Principal").Select
End Sub
Sub Filtrando_Funcionarios_senhoras()
Sheets("Funcionários").Select
Selection.AutoFilter Field:=2, Criteria1:="Senhora"
ActiveWindow.SelectedSheets.PrintPreview
Selection.AutoFilter Field:=2
ActiveWindow.SelectedSheets.PrintPreview
Selection.AutoFilter Field:=2
Sheets("Principal").Select
End Sub
Sub Filtrando_Funcionarios_senhoritas()
Sheets("Funcionários").Select
Selection.AutoFilter Field:=2, Criteria1:="Senhorita"
ActiveWindow.SelectedSheets.PrintPreview
Selection.AutoFilter Field:=2
ActiveWindow.SelectedSheets.PrintPreview
Selection.AutoFilter Field:=2
Sheets("Principal").Select
End Sub
Sub Filtrando_Jardineiro()
'função do funcionário na empresa.
Dim vFUNCAO As String
Application.ScreenUpdating = False
Sheets("Funcionários").Select
vFUNCAO = InputBox(prompt:="Digite um critério para Funções", _
Title:="Saberexcel - Filtrando Funcionarios", Default:="Jardineiro")
If vFUNCAO = ("") Then Exit Sub 'caso seja anulada a busca na inputbox
Selection.AutoFilter Field:=5, Criteria1:=vFUNCAO
ActiveWindow.SelectedSheets.PrintPreview
Selection.AutoFilter Field:=5
Sheets("Principal").Select
Application.ScreenUpdating = True
End Sub
Sub Filtrando_Motorista()
'função do funcionário na empresa.
Dim vFUNCAO As String
Application.ScreenUpdating = False
Sheets("Funcionários").Select
vFUNCAO = InputBox(prompt:="Digite um critério", _
Title:="Saberexcel - Filtrando Funcionarios", Default:="Motorista")
If vFUNCAO = ("") Then Exit Sub 'caso seja anulada a busca na inputbox
Selection.AutoFilter Field:=5, Criteria1:=vFUNCAO
ActiveWindow.SelectedSheets.PrintPreview
Selection.AutoFilter Field:=5
Sheets("Principal").Select
Application.ScreenUpdating = True
End Sub
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel
Publicidade
Compre com segurança, garantia e ótimos preços
Adicionado em: | 14/05/2011 |
Modificado em: | 14/05/2011 |
Tamanho: | Vazio |
Downloads: | 1624 |
Saberexcel - O site de quem precisa aprender macros Microsoft Excel VBA
Esse macro do Aplicativo Microsoft Excel VBA(Visual Basic Application), filtra determinados ítens de uma tabela da folha de Planilha principal, para as referidas folhas de planilhas conforme critério na tabela, isto é, distribui dados para as folhas de planilhas correspondentes, filtrando os dados.
Observe que o macro monta os cabeçalhos e retorna os dados relacionados a folha de planilha, montando um relatório para cada ítem e também
organiza na ordem crescente por data, há uma subrotina para essa finalidade, chamada Sub Ordenar_Dados(Argumentos).
Option Explicit
Dim vTabela_Recap() As Variant
Sub Distribuir_dados_planilhas()
Dim Tableau_Recup As Variant
Dim L As Integer, Item As Integer, vUltimaLinha As Integer, x As Integer
Dim Col As Byte, vUltimaColuna As Byte
Dim vNomePlanilha As String
Dim vColecaoPlanilhas As Collection
Dim vTabela_Cabecalho(4) As Variant
vTabela_Cabecalho(0) = "DATA"
vTabela_Cabecalho(1) = "NOME-SOBRENOME"
vTabela_Cabecalho(2) = "PLANILHA"
vTabela_Cabecalho(3) = "PRE-INSRIÇÃO"
Set vColecaoPlanilhas = New Collection
x = -1
With Worksheets("Dados")
vUltimaLinha = .Range("A65536").End(xlUp).Row
vUltimaColuna = .Range("IV7").End(xlToLeft).Column
Tableau_Recup = .Range(.Cells(7, 1), .Cells(vUltimaLinha, vUltimaColuna))
On Error Resume Next
For L = 2 To UBound(Tableau_Recup, 1)
vColecaoPlanilhas.Add Tableau_Recup(L, 3), CStr(Tableau_Recup(L, 3))
Next
On Error GoTo 0
Err.Clear
End With
Application.ScreenUpdating = False
For L = 1 To vColecaoPlanilhas.Count
vNomePlanilha = vColecaoPlanilhas(L)
With Worksheets(vNomePlanilha)
vUltimaLinha = .Range("A65536").End(xlUp).Row + 1
vUltimaColuna = .Range("IV7").End(xlToLeft).Column
.Range(.Cells(6, 1), .Cells(vUltimaLinha, vUltimaColuna)).ClearContents
For Item = 1 To UBound(Tableau_Recup, 1)
If vColecaoPlanilhas(L) = Tableau_Recup(Item, 3) Then
x = x + 1
ReDim Preserve vTabela_Recap(4, x)
vTabela_Recap(0, x) = Tableau_Recup(Item, 1) 'data
vTabela_Recap(1, x) = Tableau_Recup(Item, 2) 'nome sobrenome
vTabela_Recap(2, x) = Tableau_Recup(Item, 3) 'planilha
vTabela_Recap(3, x) = Tableau_Recup(Item, 4) 'Preinscrição
End If
Next
'chamando a subrotina
Ordenar_Dados vTabela_Recap
For Item = 0 To UBound(vTabela_Cabecalho, 1)
.Cells(1, 1) = "Planilha"
.Cells(1, 2) = vNomePlanilha
.Cells(5, 1 + Item) = vTabela_Cabecalho(Item)
Next
vUltimaLinha = .Range("A65536").End(xlUp).Row + 1
.Range("A" & vUltimaLinha).Resize(UBound(vTabela_Recap, 2) + 1, UBound(vTabela_Recap, 1)) = Application.Transpose(vTabela_Recap)
End With
Application.ScreenUpdating = True
x = -1
vNomePlanilha = ""
Erase vTabela_Recap
Next
MsgBox ("Dados filtrados e separados por ordem com sucesso!!"), vbInformation, "Saberexcel - o site das macros"
End Sub
'rotina para ordenar os dados em ordem crescente , é chamada no macro acima : Ordenar_Dados vTabela_Recap
Sub Ordenar_Dados(ByVal T As Variant)
Dim Col As Integer, Col2 As Integer
Dim Tmp1 As Variant, Tmp2 As Variant, Tmp3 As Variant, Tmp4 As Variant
For Col = 0 To UBound(T, 2)
For Col2 = 0 To UBound(T, 2)
If T(0, Col2) > T(0, Col) Then
Tmp1 = T(0, Col): Tmp2 = T(1, Col): Tmp3 = T(2, Col): Tmp4 = T(3, Col)
T(0, Col) = T(0, Col2): T(1, Col) = T(1, Col2): T(2, Col) = T(2, Col2): T(3, Col) = T(3, Col2)
T(0, Col2) = Tmp1: T(1, Col2) = Tmp2: T(2, Col2) = Tmp3: T(3, Col2) = Tmp4
End If
Next
Next
vTabela_Recap = T
End Sub
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel
Adquira já o Acesso Imediato
à Area de Membros
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
<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>
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