LOOP EM LISTVIEW
Pessoal,
Preciso pegar os dois primeiros nomes de uma ListView e jogar em uma caixa de texto tipo o exemplo abaixo.
exemplo de com deve ficar: Fulano de tal;Cicrano de tal e outros.
assim se a ListView tiver mais registro alem de dois, pegar os dois primeiros nomes da lista e acrescentar o texto [ô]outros[ô] no final
acredito que deve ser um loop facil, mas não conseguir fazer.
se alguem puder ajudar.
grato
Alguém ai sabe como fazer
Preciso pegar os dois primeiros nomes de uma ListView e jogar em uma caixa de texto tipo o exemplo abaixo.
exemplo de com deve ficar: Fulano de tal;Cicrano de tal e outros.
assim se a ListView tiver mais registro alem de dois, pegar os dois primeiros nomes da lista e acrescentar o texto [ô]outros[ô] no final
acredito que deve ser um loop facil, mas não conseguir fazer.
se alguem puder ajudar.
grato
Alguém ai sabe como fazer
Pessoal desculpe a gambiarra mais este codigo que fiz quase fez o que eu queria
[ô]pega os registro relacionados no controle e joga em um textbox
Public Function PegaLista(Vcontrol As ListView) As String
Dim X As ListItem
Dim varItem As Variant, strList As String
Dim number As Integer
With Vcontrol
number = .ListItems.Count [ô] pego a quantidade de registro na lista
If number <= 2 Then [ô] se lista menor ou igual a dois registros
For Each X In .ListItems [ô] percorro a lista
strList = strList & X.SubItems(1) & [Ô];[Ô] [ô]e adiciono todos os dados na textbox
Next X
End If
If number > 2 Then [ô] se lista tem mais que dois registros
For Each X In .ListItems [ô] percorro a lista
strList = strList & X.SubItems(1) & [Ô] e outros[Ô] [ô] adiciono apenas um dado na lista e a string outros
Exit For
Next X
End If
End With
If Right(strList, 1) = [Ô];[Ô] Then
strList = Left(strList, Len(strList) - 1)
End If
PegaLista = CStr(strList)
End Function
- quando tem apenas dois registro ele acresta os dois na textbox
- quando tem mais de dois ele acresta apenas o primeiro e a string outros no final
Peço para os mais experiente que deem uma olhada e se puder melhorar para um código mais enxuto e funcionando 100% ficarei muito grato.
[ô]pega os registro relacionados no controle e joga em um textbox
Public Function PegaLista(Vcontrol As ListView) As String
Dim X As ListItem
Dim varItem As Variant, strList As String
Dim number As Integer
With Vcontrol
number = .ListItems.Count [ô] pego a quantidade de registro na lista
If number <= 2 Then [ô] se lista menor ou igual a dois registros
For Each X In .ListItems [ô] percorro a lista
strList = strList & X.SubItems(1) & [Ô];[Ô] [ô]e adiciono todos os dados na textbox
Next X
End If
If number > 2 Then [ô] se lista tem mais que dois registros
For Each X In .ListItems [ô] percorro a lista
strList = strList & X.SubItems(1) & [Ô] e outros[Ô] [ô] adiciono apenas um dado na lista e a string outros
Exit For
Next X
End If
End With
If Right(strList, 1) = [Ô];[Ô] Then
strList = Left(strList, Len(strList) - 1)
End If
PegaLista = CStr(strList)
End Function
- quando tem apenas dois registro ele acresta os dois na textbox
- quando tem mais de dois ele acresta apenas o primeiro e a string outros no final
Peço para os mais experiente que deem uma olhada e se puder melhorar para um código mais enxuto e funcionando 100% ficarei muito grato.
Pessoal,
Conseguir fazer o condigo funcionar, não estar cem por cento como eu queria, mas satisfaz.
grato
Conseguir fazer o condigo funcionar, não estar cem por cento como eu queria, mas satisfaz.
grato
Tópico encerrado , respostas não são mais permitidas