Boa tarde.
Num Userform, tenho uma Listbox e uma textbox. Digitando carateres na textbox, a listbox vai sendo preenchida com os nomes que contêm os carateres digitados na Listbox.
Na Listbox, são apresentados numa só coluna, o nº da linha, seguido do nome que nessa linha se encontra gravado.
A folha contem Nomes repetidos, pelo que esse facto deverá ser tido em conta, podendo os registos relativos a esse nome ser diferentes nas várias linhas.
Ao selecionar um nome na Listbox, são exibidos em label's, os registos dessa linha, relativos a esse nome.
Para o efeito utilizo as rotinas seguintes:
Option Explicit
Sub FillListBox()
Sheets("DADOS").Unprotect
Sheets("DADOS").Select
Dim START As Integer
ListBox1.Clear
START = 2
While Range("DADOS!C" & START).Value <> ""
If InStr(1, Range("DADOS!C" & START).Value, TextBox1.Value, vbTextCompare) >= 1 Then
ListBox1.AddItem START & "---" & Range("DADOS!C" & START).Value & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & START
End If
If TextBox1.Value = "" Then
ListBox1.Clear
End If
START = START + 1
Wend
End Sub
Private Sub ListBox1_Click()
Dim LIN As Integer
LIN = 1 * Mid(ListBox1.Value, InStr(1, ListBox1.Value, vbTab & vbTab, vbTextCompare))
Label1.Caption = Range("DADOS!F" & LIN).Value
Label2.Caption = Range("DADOS!J" & LIN).Value
Label3.Caption = Range("DADOS!G" & LIN).Value
Label7.Caption = Range("DADOS!K" & LIN).Value
Label8.Caption = Range("DADOS!L" & LIN).Value
Label4.Caption = Range("DADOS!H" & LIN).Value
Label5.Caption = Range("DADOS!I" & LIN).Value
End Sub
Private Sub TextBox1_Change()
Label1.Caption = ""
Label2.Caption = ""
Label3.Caption = ""
Label7.Caption = ""
Label8.Caption = ""
Label4.Caption = ""
Label5.Caption = ""
FillListBox
End Sub
Por Textbox, pretende-se introduzir o texto retificativo, para alteração dos dados existentes, cuja rotina será associada ao botão "gravar", gravando apenas na linha em causa os dados constantes nas textbox que contiverem texto
para alteração.
Antecipadamente grato pela ajuda.
M_A_L