quinta-feira, fevereiro 18, 2010

Recuperar células adjacentes a um Find()

No help do Excel, o Find() deveria retornar um range. O que ele retorna, na verdade, é o .Value da célula localizada. Mas se for necessário navegar nas células adjacentes deve-se considerar como range mesmo.

Veja exemplo:

Set Mat = Worksheets("Banco_Sistema").Range("E:E").Find(txtMat.Text)
If Mat Is Nothing Then
    Dim Resposta As Integer
    Resposta = MsgBox("Servidor não encontrado!! Deseja adicioná-lo manualmente?", vbYesNo)
    Select Case Resposta
    Case vbYes
        txtNome.Visible = True
        labNomeServidor.Visible = False
    Case vbNo
        txtMat.Text = ""
        labNomeServidor.Caption = "Nome do Servidor"
        txtNome.Text = ""
        txtNome.Visible = False
        labNomeServidor.Visible = True
    End Select
Else
    enderecoMat = Mat.Address(False, False)  'Referencia relativa
    Dim Resposta2 As Integer
    Resposta2 = MsgBox("Por favor, confirme os dados do servidor selecionado:" & vbNewLine & vbNewLine & "Matrícula: " & txtMat.Text & vbNewLine & "Nome: " & Mat.Offset(0, 1), vbYesNo)
    Select Case Resposta2
    Case vbYes
        labNomeServidor.Caption = Mat.Offset(0, 1)
    Case vbNo
        labNomeServidor.Caption = "Nome do Servidor"
        txtNome.Text = ""
        Mat = ""
    End Select

End If
Procuramos o texto colocado no txtBox, e retornamos o Value da primeira célula à direita.

Nenhum comentário:

Postar um comentário