SEPARAR ITEM DA LISTBOX
Tenho um listbox um textbox e 2 optionbutton
No listbox eu tenho um item duplo carregado Ramon Programador
Quando eu clicar nesse item eu quero que Ramon
carregue para o textbox1 e Programador o optionbutton (cujo o caption sera Programador) vai ser selecionado
Se tiver outra linha Ramon Analista então o optionbutton2 Analista vai ser selecionado.
Como fazer isso
Um amigo me falou para usar a funçao split() mas meu VB é 5 e não tem essa função para separar em vetor
Alguem poderia me dar um exemplo de como fazer
No listbox eu tenho um item duplo carregado Ramon Programador
Quando eu clicar nesse item eu quero que Ramon
carregue para o textbox1 e Programador o optionbutton (cujo o caption sera Programador) vai ser selecionado
Se tiver outra linha Ramon Analista então o optionbutton2 Analista vai ser selecionado.
Como fazer isso
Um amigo me falou para usar a funçao split() mas meu VB é 5 e não tem essa função para separar em vetor
Alguem poderia me dar um exemplo de como fazer
Public Function Split(ByVal Texto,Optional ByVal SearchStr As String = " ") As Variant
Dim Words() As String, i As Integer
Dim j As Integer, k As Integer
If Len(Texto) Then
k = 0
i = InStr(Texto, SearchStr)
j = 1
Do While i
ReDim Preserve Words(0 To k)
Words(k) = Mid(Texto, j, i - j)
k = k + 1
j = i + 1
i = InStr(j, Texto, SearchStr)
Loop
ReDim Preserve Words(0 To k)
Words(k) = Mid(Texto, j, Len(Texto))
Else
ReDim Words(-1 To -1)
End If
Split = Words
End Function
Para usar defina um array e chame a função , assim :
Dim Matriz as Variant
Matriz = Split(string,delimitador)
Private Sub Command1_Click()
Dim vArray As Variant
For i = 0 To List1.ListCount - 1
vArray = Split(List1.List(i), " ")
For n = LBound(vArray) To UBound(vArray)
If vArray(n) = "Programador" Then Option1.Value = True: Exit For
If vArray(n) = "Analista" Then Option2.Value = True: Exit For
Text1.Text = Text1.Text & " " & vArray(n)
Next n
Next i
End Sub
resolvi?
eu sei que o VB6 existe essa função Split... sendo o VB do Ramon é o VB5... então mandei o código que imita o split do vb6
Private Sub Form_Load()
List1.AddItem "Ramon Programador"
List1.AddItem "Ramon é vbmanÃaco Programador"
End Sub
Private Sub List1_Click()
Dim vArray As Variant
Text1.Text = ""
vArray = Split(List1.Text, " ")
For n = LBound(vArray) To UBound(vArray)
If vArray(n) = "Programador" Then Option1.Value = True: Exit For
If vArray(n) = "Novato" Then Option2.Value = True: Exit For
Text1.Text = Text1.Text & " " & vArray(n)
Next n
End Sub
-----------------
do seu jeito:
sItem = List1.List(List1.ListIndex)
pos = InStr(1, sItem, " ") 'somente um espaço " "
If pos 0 Then
primeiro = Left(sItem, pos - 1)
segundo = Right(sItem, Len(sItem) - pos)
Text1.Text = primeiro
if segundo = "Programador" then option1.value = true
if segundo = "Novato" then option2.value = true
' Text2.Text = segundo
End If
blz?
List1.AddItem "Ramon Programador"
List1.AddItem "Ramon é vbmanÃaco Programador"
End Sub
Private Sub List1_Click()
Dim vArray As Variant
Text1.Text = ""
vArray = Split(List1.Text, " ")
For n = LBound(vArray) To UBound(vArray)
If vArray(n) = "Programador" Then Option1.Value = True: Exit For
If vArray(n) = "Novato" Then Option2.Value = True: Exit For
Text1.Text = Text1.Text & " " & vArray(n)
Next n
End Sub
-----------------
do seu jeito:
sItem = List1.List(List1.ListIndex)
pos = InStr(1, sItem, " ") 'somente um espaço " "
If pos 0 Then
primeiro = Left(sItem, pos - 1)
segundo = Right(sItem, Len(sItem) - pos)
Text1.Text = primeiro
if segundo = "Programador" then option1.value = true
if segundo = "Novato" then option2.value = true
' Text2.Text = segundo
End If
blz?
RAMON é melhor vc usar o split, pois no caso se tiver um nome composto não terá problemas:
ex:
Carlos Renato Maia Programador
vc colocando aquele exemplo do split vai pro text1 = Carlos Renato Maia e option programador vai ser selecionado.
ex:
Carlos Renato Maia Programador
vc colocando aquele exemplo do split vai pro text1 = Carlos Renato Maia e option programador vai ser selecionado.
Private Sub Form_Load()
List1.AddItem "Ramon Programador"
List1.AddItem "Ramon é vbmanÃaco Programador"
End Sub
Private Sub List1_Click()
Dim vArray As Variant
Text1.Text = ""
vArray = Split(List1.Text, " ")
For n = LBound(vArray) To UBound(vArray)
If vArray(n) = "Programador" Then Option1.Value = True: Exit For
If vArray(n) = "Novato" Then Option2.Value = True: Exit For
Text1.Text = Text1.Text & " " & vArray(n) aqui que está o problema
Next n
Text1.Text = LTrim(Text1.Text) retira os espaços a esquerda
End Sub
List1.AddItem "Ramon Programador"
List1.AddItem "Ramon é vbmanÃaco Programador"
End Sub
Private Sub List1_Click()
Dim vArray As Variant
Text1.Text = ""
vArray = Split(List1.Text, " ")
For n = LBound(vArray) To UBound(vArray)
If vArray(n) = "Programador" Then Option1.Value = True: Exit For
If vArray(n) = "Novato" Then Option2.Value = True: Exit For
Text1.Text = Text1.Text & " " & vArray(n) aqui que está o problema
Next n
Text1.Text = LTrim(Text1.Text) retira os espaços a esquerda
End Sub
vc pode fazer assim?
no começo de todo nome vc coloca um codigo:
ex:
1-ramon novato
2-carlos da silva Aprendiz
2-Juliana siqueira Aprendiz
2-Vivi Aprendiz
3-rubem programador
'1 = novato; 2= aprendiz; 3= programador
e coloca a propriedade Sorted = true
isso resolve
no começo de todo nome vc coloca um codigo:
ex:
1-ramon novato
2-carlos da silva Aprendiz
2-Juliana siqueira Aprendiz
2-Vivi Aprendiz
3-rubem programador
'1 = novato; 2= aprendiz; 3= programador
e coloca a propriedade Sorted = true
isso resolve
http://www.vbmania.com.br/vbmforum.php?varMethod=Abrir&varID=22571
Tópico encerrado , respostas não são mais permitidas