tenho um exercicio da faculdade em que tenho que ordenar uma lista de nomes em uma coluna. Porem, indicaram que a ordenção teria que ser feita pelo metodo Selection, e que fosse feita duas subs e uma function para isso.
esse é o enunciado : Ordene os investidores em ordem crescente pelo último sobrenome (ex: Zélia Cardoso vem antes de
Alberto Terra)
O maximo que consegui chegar foi isso
Function calculaTamanho() As Integer ' calcula a quantidade total de nomes
Dim tam As Integer
tam = 1
While Cells(tam + 1, 1) <> ""
tam = tam + 1
Wend
calculaTamanho = tam - 1 ' porque tem o indice na primeira celula que ele conta
End Function
_________________
Sub troca(lin1 As Integer, lin2 As Integer) ' troca de posição os valores comparados
Dim aux As String
Dim col As Integer
col = 1
While Cells(lin1, col) <> ""
aux = Cells(lin1, col)
cells(lin1,col)=cells(
Cells(lin2, col) = aux
col = col + 1
Wend
End Sub
____________
Sub ordenaSelection()
Dim nome As String
Dim letra_sobrenome As String
Dim sobrenome As String
Dim cont As Integer
Dim x As String
sobrenome = Right(nome, Len(nome) - InStr(nome, " ")) ' pega somente o sobrenome
letra_sobrenome = Left(sobrenome, 1) ' pega a primeira letra do sobrenome
Pergunta
masbah
Ola,
tenho um exercicio da faculdade em que tenho que ordenar uma lista de nomes em uma coluna. Porem, indicaram que a ordenção teria que ser feita pelo metodo Selection, e que fosse feita duas subs e uma function para isso.
esse é o enunciado : Ordene os investidores em ordem crescente pelo último sobrenome (ex: Zélia Cardoso vem antes de
Alberto Terra)
O maximo que consegui chegar foi isso
Function calculaTamanho() As Integer ' calcula a quantidade total de nomes
Dim tam As Integer
tam = 1
While Cells(tam + 1, 1) <> ""
tam = tam + 1
Wend
calculaTamanho = tam - 1 ' porque tem o indice na primeira celula que ele conta
End Function
_________________
Sub troca(lin1 As Integer, lin2 As Integer) ' troca de posição os valores comparados
Dim aux As String
Dim col As Integer
col = 1
While Cells(lin1, col) <> ""
aux = Cells(lin1, col)
cells(lin1,col)=cells(
Cells(lin2, col) = aux
col = col + 1
Wend
End Sub
____________
Sub ordenaSelection()
Dim nome As String
Dim letra_sobrenome As String
Dim sobrenome As String
Dim cont As Integer
Dim x As String
sobrenome = Right(nome, Len(nome) - InStr(nome, " ")) ' pega somente o sobrenome
letra_sobrenome = Left(sobrenome, 1) ' pega a primeira letra do sobrenome
End Sub
alguém tem noção de como eu faço isso funcionar??
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.