Muito Bom!
Mas estou detetando um problema! Eu acrescentei dados em frente de cada linha da linha de números.
Vejam aqui um exemplo em anexo:
E, quando introduzo, por exemplo, o valor 020112 ele deveria ser introduzido sem nenhum valor em frente.
Mas está apenas a reorganizar a coluna de números e ignorar o resto da linha :s
exit, se o layout do arquivo que postou é definitivo, ou seja, os Dados lançados na Plan2 só Temos o Cabeçalho na Coluna "B", a rotina atual Classifica somente pela Coluna "B" ignorando as demais, ainda mais que temos a Coluna "C" vazia, então precisamos orientar para que seja feita a classificação por todas as Colunas, de "B" até "H", e se for fazer manualmente perceberá que será exibido se quer considerar os Numericos armazenados como texto como sendo Valores Numericos.
Então substitua toda a rotina : Public Sub LancaValor(ByVal sValA1 As String)
pela a abaixo :
Public Sub LancaValor(ByVal sValA1 As String)
Dim shtPlan2 As Excel.Worksheet
Dim sCell As String
Dim sLin As String
'criando o objeto do tipo planilha
Set shtPlan2 = ThisWorkbook.Worksheets("Plan2")
With shtPlan2
'Retornando o endereço da próxima célula abaixo da ultima preenchida da coluna B (por isso o numero 2 ali)
sCell = .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).Address
'Lança o Valor
.Range(sCell).Value = "'" & sValA1
'Conta e Armazena a Ultima Linha Preenchida, baseando-se na coluna "B"
sLin = .Cells(.Rows.Count, 2).End(xlUp).Row
End With
'classificando a tabela, forçando o excel a entender que esta tabela
'NÃO tem cabeçalho e que os dados numericos são textos
With shtPlan2.Sort
.SetRange Range("B2:H" & sLin)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Sempre que criar um objeto, deve-se destrui-lo ao fim do código
Set shtPlan2 = Nothing
End Sub
Refaça todos os testes e qq duvida retorne.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 10/05/2013 7:24 pm