Cavalcante Consultores – treinamento e consultoria em finanças e Excel

Criando os links entre os objetos e as planilhas

Cavalcante Consultores > Biblioteca de Excel > Criando os links entre os objetos e as planilhas

(Este conteúdo é uma continuação de criando os códigos para as telas de comando.)

Introdução

No texto anterior, você aprendeu a adicionar funcionalidades, através de macros em VBA, a um formulário. Embora seja possível realizar grande parte do trabalho de interação entre formulário e planilha através de ranges e da propriedade Value dos objetos de formulário, há formas mais eficientes de fazê-lo.

Neste conteúdo, você aprenderá a utilizar áreas de planilha nomeadas, offsets e as propriedades Value e Caption de objetos de formulário para que suas telas recuperem informações da planilha de forma simples.

Exemplo

Prosseguimos do exemplo no conteúdo anterior, onde criamos um formulário que facilita a inclusão de informações (nome e email) a uma tabela, como na figura abaixo:

Suponha que desejamos criar um novo formulário, formSelecao, para consulta dos registros previamente inseridos. O formulário terá a seguinte aparência:

Ao clicar em um dos nomes disponíveis na lista (nomeada listNomes), o rótulo na parte inferior da janela (nomeado labelEmail) será alterado para o email cadastrado:

Se uma linha em branco estiver selecionada, ou nenhum item, o rótulo terá seu valor alterado para "Selecione um nome na lista acima".

Objetos de lista em formulários, como as caixas de combinação ou menus drop-down, utilizam a propriedade RowSource para saber que região da planilha utilizar. Esta propriedade é uma string com o nome de uma área definida da planilha. No exemplo, temos formSelecao.RowSource = "Registros", que é a área da imagem abaixo:

Observe o código utilizado para atribuir este comportamento ao formulário:

Private Sub listNomes_Change()
    labelEmail.Caption = _
    Range("Registros").Offset(listNomes.ListIndex, 1).Cells(1, 1).Value
    If labelEmail.Caption = Empty Then
        labelEmail.Caption = "Selecione um nome na lista acima."
    End If
End Sub

Quando o item selecionado de listNomes é alterado, a macro acima é executada. Ela realiza as seguintes ações:

Pratique!