Há algum tempo, publiquei um exemplo de código VBA que permitia efetuar um filtro em uma lista de itens em um ListBox (UserForm), mas especificamente neste link:
http://www.tomasvasquez.com.br/blog/microsoft-office/vba-como-filtrar-dados-no-listbox
Bom, nas discussões no nosso fórum, acabamos por aperfeiçoar o código para algo mais abrangente. A boa notícia é que o código continua bem genérico, pode ser facilmente acoplado em qualquer planilha. A notícia ótima é que os critérios de filtro ficaram bem mais completos.
O código agora permite selecionar o campo no qual será aplicado o filtro, o valor do filtro e mostra todos as colunas da tabela. Abaixo segue como ficou a aparência do formulário:

O código VBA
Entrando um pouco em detalhes a respeito do funcionamento do código e como adaptá-lo a sua planilha, seguem algumas considerações.
Variáveis
Private Const NomePlanilha As String = “Fornecedores”
Private Const LinhaCabecalho As Integer = 1
NomePlanilha contempla o nome da planilha ao qual será aplicado o filtro. Altere para o nome da sua planilha.
LinhaCabecalho representa qual a linha da sua planilha contém o cabeçalho da tabela. É nele que se baseiam todos as outras funções.
Funções
PreencheCampos – Preenche o ComboBox com o nome dos cabeçalhos
PreencheCabecalho – Função auxiliar para colocar no ListBox de resultado o cabeçalho dos valores
PreencheLista – Preenche o ListBox de resultado considerando os valores de filtro
Download da planilha
Filtra_ListBox_VBA_Custom.zip
Bom proveito!
Fonte: INFO
![faixa-de-opcoes-minimizada-20100115100813[1]](http://www.tomasvasquez.com.br/blog/wp-content/uploads/2010/01/faixa-de-opcoes-minimizada-201001151008131-300x150.jpg)
Minimize a Faixa de Opções e ganhe espaço extra para trabalhar com documentos, planilhas e apresentações
Para trabalhar bem, nada melhor do que ter espaço. Se você quiser aumentar a área útil na tela do seu computador nos programas do Office, clique no botão Personalizar e selecione Minimizar a Faixa de Opções. É o que basta para que desapareçam. Para operar com uma faixa de opções, clique em seu título. Para voltar a exibir a faixa de opções, clique novamente em Personalizar e desmarque o comando Minimizar ou, então, ganhe tempo e use um duplo clique em qualquer uma das guias.
Do autor
A dica é básica, mas vale muito a pena principalmente com a chegada dos netbooks, cujas telas são de tamanho bem reduzido e as barras de ferramenta podem ser um tormento na hora de realizar os trabalhos.
Bom proveito!
Desde a versão XP, ou Microsoft Office incluiu uma nova característica. Uma das mais implícitas lançadas pelo aplicativo por ser notavelmente apresentada ao usuário. O Painel de Tarefas.
O Painel de Tarefas é uma barra ou um pedaço de tela que se arranja ao lado direito da janela do Microsoft Excel quando este é aberto, conforme é visto na figura abaixo:
No Office XP ele é pouco usual, tornando-se apenas umas extensão de algumas caixas de diálogo. Já no Office 2003, o Painel de Tarefas passou de um mero coadjuvante para uma ferramenta essencial em algumas funcionalidades que serão listadas neste artigo.
Clicar na título superior desta, nos traz algumas de suas opções padrão como mostra a figura:
Abaixo segue um resumo das funcionalidades de cada uma das opções:
Ponto de Partida
Permite uma interação inicial com o Microsoft Excel. Os destaque fica por conta de um painel de pesquisa disponibilizado logo na primeira seção do Painel. Qualquer busca é feita automaticamente no Office Online, um portal de conteúdo sobre Office mantido pela Microsoft para manter sempre atualizado o conteúdo e exemplos de Excel. Logo abaixo desta seção também é colocada a lista de documentos recentemente abertos, assim como no mebu arquivo. A vantagem está no rápido acesso.
Ajuda
Esta é uma das principais mudanças notadas pelos usuários. A seção de pesquisa da ajuda é apresentada totalmente no painel de tarefas. A vantagem em relação à forma antiga é que além de não ser preciso abrir uma nova janela, a pesquisa pode ser categorizada e também é integrada ao Office Online.
Resultados da Pesquisa

Como resultado da maior parte das pesquisas, desde exemplos até no help, tudo é mostrado neste página. O resultado é mostrado em forma de lista, sendo o texto principal um resumo do recurso encontrado associado a um link. Esse link direciona para este conteúdo, esteja ele localmente ou na Internet. Para ajudar a orientar o usuário, logo abaixo do link é mostrada a categoria ou local onde o recurso reside.
Clip-art

Toda a busca por Cliparts no Office agora é feito pelo Painel de Tarefas. A pesquisa também foi bastante melhorada, permitindo pesquisar em coleções específicas, além de poder efetuar buscas também no reposítório do Office Online. Também ficou mais fácil arrastar e soltar as figuras pois como o painel e a planilha estão sempre visíveis, fica fácil atingir a área desejada, sem precisar jogá-la em qualquer ligar para depois arrumar.
Pesquisar

Este Painel de Pesquisa vai além do que a Ajuda oferece. É uma espécie de buscador de internet integrado ao Office, como o Google ou o MSN Search. Abaixo segue uma figura com as opções padrão disponíveis:
É possível efetuar buscas por tradução de texto, sinônimos e também de negócios específicos. A busca também pode trazer como resultado serviços do Office Market Place. Também é possível personalizar estas opções clicando no link Opções de pesquisa no rodapé do painel:
Área de tranferência

O Office desde a versão XP já possibilitava um controle maior da área de transferência. Todo este controle é feito agora pelo painel de tarefas. Além de armazenar os últimos 24 itens copiados, permite excluir determinado item, limpar a área de transferência, colar todos os itens contidos nesta, compartilhar a área entre os aplicativos do Office e também configurar o momente de sua aparição, até mesmo para não aparecer nunca.
Nova Pasta de Trabalho

Substitui a tradicional janela de novo arquivo, acessível pelo menu Arquivo->Novo. Da mesma forma como a maioria dos outros paineis, além de trazer recursos locais, também integra o Office Online, podendo consultar e utilizar modelos de planilha online e também no ambiente de rede.
Espaço de Trabalho Compartilhado

Este recurso disponibiliza integração entre os usuários de um domínio Windows Server com o recurso Sharepoint Server compartilhar e controlar a criação e edição de documentos. Além do compartilhamento, o recurso permite abrir um espaço de trabalho, definir tarefas que serão compartilhadas, atualizar automaticamente o documento neste espaço, versionar o documento entre outras coisa. Não convém aprofundar neste recurso, a não ser que o ambiente onde esteja trabalhando esteja integrado o Sharepoint, o normalmente ocorre em um ambiente coorporativo.
Atualizações do Documento

Trabalha integrado ao painel Espaço de Trabalho Compartilhado. Ele mostra o histórico de atualizações do documento com detalhes a respeito das modificações feitas.
Código-fonte XML

Como novidade da versão 2003, o mapeamento dos arquivos XML utiliza o painel de tarefas para disponibilizar as nós que contém dados para serem inseridos na planilha, em um esquema muito parecido com as tabelas dinâmicas. Um arquivo XML mapeado pode ser visto na figura abaixo:
Note que o Excel obedece a hieraquia dos itens contidos no XML.
Após a breve explicação de cada um destes itens, é pertinente definir alguns termos que foram mencionados. Um deles é o Office MarketPlace.
O Office Marketplace é uma exposição de produtos e serviços que funcionam com o Office. São suplementos e serviços de internet que funcionam integrados ao Office. O Office Marketplace reune desde serviços profissionais a tarefas do dia-a-dia. É possível também colaborar, tendo obras publicadas neste site. Diversas empresas especializadas em Microsoft Office tem trabalhos publicados para demonstrar o potencial das ferramentas do Office.
O Office Online é o site oficial da Microsoft para o produto Microsoft Office. Nele a empresa disponibiliza todo tipo de recurso, informação e exemplos, buscando aumentar a produtividade com o uso da ferramenta. Todo o conteúdo dos programas da família Office integram suas buscas com o Office Online.
Documentos Inteligentes
Juntamente com o compartilhamento de documentos e planilhas integrados ao SharePoint e as Marcas Inteligentes, este pode ser considerado um dos recursos mais valiosos incorporados no Microsoft Office 2003, principalmente para as empresas que mantém seus processos de negócio interagindo com estes documentos. Os tecnologia dos documentos inteligentes permitem aos desenvolvedores de sistemas um nível de automação que dipõem ao usuário uma forma de interagir com os sistemas da empresa de dentro de um documento Word ou planilha de Excel de forma clara e transparente. Isso já era possível com o VBA, porém, os documentos inteligentes não dependem deste tipo de tecnologia, fazendo uso de técnicas avançadas de programação, permitindo mapear um documento de tal forma que o painel de tarefas muda todo seu conteúdo dependendo de em que parte do documento você esteja navegando.
Por exemplo, se você estiver em uma área da planilha em que seja necessáro inserir os dados de um cliente, é possível pela programação de documentos inteligentes que, ao navegar por esta área, o painel de tarefas mostre todas as informações a respeito de todos os clientes da empresa ou daquele determinado cliente já informado na planilha. Se em outra parte da planilha você tivesse uma lista de produtos e quisesse saber mais detalhes sobre cada um deles, através da mesma tecnologia seria possível que ao navegar pela lista de produtos, fossem mostradas todas as informações daquele produto como marca, preço ou até mesmo a foto do produto. Também é possível inserir qualquer informação contida no painel de tarefas dentro da planilha.
Para o usuário final, todo este processo é transparente, não importando de onde vem a informação, podendo ser um banco de dados, um site, um sistema comercial da empresa ou até mesmo um serviço web.
Infelizmente este tipo de programação não é possível por meio de código VBA, ficando este desenvolvimento restrito a linguagens de mais alto-nível como Visual Basic.NET, Visual C# e Visual C++. Para estes, o meio padrão disponibilizado para interação com o usuário é o painel de tarefas.
Conclusão
Fica claro ao ver a quantidade de recursos disponibilizada pelo Painel de Tarefas que este deixa de ser apenas uma janela lateral que insiste em conquistar o usuário para se transformar num dos caminhos mais fáceis para interagir com os novos recursos adicionados na ferramenta Office. Com prática e curiosidade, facilmente o Painel de Tarefas passa a ser um poderoso e indispensável aliado para os trabalhos do dia-a-dia no Microsoft Excel.
Mais uma para a caixa de ferramentas de VBA. A macro abaixo retorna um Array de String com a lista de nomes dos arquivos contidos na pasta informada:
Public Function ListaArquivos(ByVal Caminho As String) As String()
'Atenção: Faça referência à biblioteca Micrsoft Scripting Runtime
Dim FSO As New FileSystemObject
Dim result() As String
Dim Pasta As Folder
Dim Arquivo As File
Dim Indice As Long
ReDim result(0) As String
If FSO.FolderExists(Caminho) Then
Set Pasta = FSO.GetFolder(Caminho)
For Each Arquivo In Pasta.Files
Indice = IIf(result(0) = "", 0, Indice + 1)
ReDim Preserve result(Indice) As String
result(Indice) = Arquivo.Name
Next
End If
ListaArquivos = result
ErrHandler:
Set FSO = Nothing
Set Pasta = Nothing
Set Arquivo = Nothing
End Function
A macro abaixo é um exemplo de chamanda a função acima, listando os arquivos da pasta C:\temp, como informado no código.
Private Sub ListaArquivos()
Dim arquivos() As String
Dim lCtr As Long
arquivos = ListaArquivos("C:\temp")
For lCtr = 0 To UBound(arquivos)
Debug.Print arquivos(lCtr)
Next
End Sub
Importante: Faça referência à biblioteca Micrsoft Scripting Runtime para ter acesso aos objetos da File System Object (FSO), necessários para execução do exemplo.
Bom proveito!