terça-feira, 8 de outubro de 2013

Relatório com dados de Listbox e Propriedades da Listbox


Podemos gerar relatórios a partir de seleções de dados efetuadas dentro de listbox. Os dados serão lidos e armazenados em uma planilha pré-configurada para receber esses dados. A vídeo aula 29 trata deste tema.


Para entender melhor os comandos criados dentro das macros temos que conhecer algumas propriedades da ListBox ou caixa de listagem... as principais e usadas com mais frequência estão listadas abaixo. Todas as propriedades de um objeto são declaradas após o nome de objeto seguindo por . "ponto", ou seja se o nome do meu objeto listbox for ListBox1 por exemplo a sintaxe de trabalho das propriedades ficaria da seguinte forma

ListBox1.AddItem ou ListBox1.Clear e assim por diante...


  1. Additem
  2. Clear
  3. List
  4. ListCount
  5. ListIndex
  6. Select



1. Propriedade AddItem

A propriedade AddItem da listbox pode inserir dados da planilha ou diretamente através de código...
para que a listbox seja carregada ao se abrir o formulário é necessário colocar o código abaixo dentro do procedimento Initialize do formulário, ou seja, deve-se dar duplo click em uma área vazia do formulário para que seja aberta a tela de códificação... por padrão será aberto no Procedimento Click(Imagem 01), mas basta selecionar o procedimento Initialize na caixa de listagem (Imagem02)

 Ex.1. Listbox1.AddItem "Janeiro"
          Listbox1.AddItem "Fevereiro"
          Listbox1.AddItem "Março"
          Listbox1.AddItem "Abril"


Imagem 01. Tela de codificação aberta após duplo clique na área do Formulário

Imagem 02. Selecionando o procedimento Initialize
Após selecionar Initiaze o editor VBA já irá abrir um procedimento Private Sub Userform_Initialize() onde será colocadas as ações que serão executadas ao se iniciar o formulário, adicionando o código de adicionar itens ao procedimento temos o resultado conforme imagem 03.

Imagem 03. Código inserido no Initialize e listbox  mostrando os dados inseridos via código




O mesmo código do Exemplo 01 pode ser escrito da seguinte maneira, usando-se a comando With, para não ficar repetitivo a digitação dos dados para um mesmo objeto.

With ListBox1
    .AddItem "Janeiro"
    .AddItem "Fevereiro"
        .AddItem "Março"
        .AddItem "Abril"
   End With

1.1 Propriedade AddItem mais de uma coluna

Para se colocar dados em mais de uma coluna numa listbox deve-se primeiramente colocar na propriedade ColumnCount do objeto (Imagem 4) o número de colunas que se deseja. Lembrando que uma listbox pode conter no máxima 10 colunas quando os dados forem adicionados via código.

Imagem 04. Caixa de Propriedades do Objeto Listbox

É possível também indicar o número de colunas de uma listbox diretamente no código antes de se adicionar os dados através do propriedade CollumnCount. Vamos a um exemplo.

Ex.2.

With ListBox1
    .ColumnCount = 3
    
    .AddItem        
    .List(0, 0) = "Janeiro"
    .List(0, 1) = "Fevereiro"
    .List(0, 2) = "Março"
    
    .AddItem
    .List(1, 0) = "Abril"
    .List(1, 1) = "Maio"
    .List(1, 2) = "Junho"

    .AddItem
    .List(2, 0) = "Julho"
    .List(2, 1) = "Agosto"
    .List(2, 2) = "Setembro"

End With 

O exemplo acima adiciona 3 linhas de dados em 3 colunas da lisbox... observe que numa listbox a primeira linha e primeira coluna sempre terão valor 0 (zero) e vai ser sempre no formato (linha,coluna) a posição dos dados dentro desse objeto. Então devemos pensar no posicionamento dos dados como uma matriz onde cada elemento tem uma posição.

0,0
0,1
0,2
1,0
1,1
1,2
2,0
2,1
2,2

Imagem 05 - Listbox com 3 colunas







Nas próximas postagem veremos mais sobre a listbox...


Um comentário:

  1. De todas as pesquisas que fiz para aprender um pouco mais de VBA na raça, as suas aulas são as melhores. A didática é incrível. Obrigado e muito sucesso!!!

    ResponderExcluir