Notifications
Clear all

Mudou a ordem dos valores

5 Posts
2 Usuários
0 Reactions
640 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Colegas, bom dia.
O amigo Klarc28 me presenteou com o código que eu precisava.
viewtopic.php?f=10&t=28043

Mas para usar na minha pasta original aqui no trabalho os valores estão numa ordem diferente agora.
Colei nessa pasta todas as informações da minha pasta original, inclusive com fórmulas.
Agora a coluna "Q" esta me dando outra ordem. Não é a desejada, teria que ser do valor menor para o maior.

Clicar no botão da planilha para ordenar.

 
Postado : 18/04/2018 6:02 am
(@klarc28)
Posts: 0
New Member
 

O problema não está na minha macro,
Está na forma como você está passando esses números para a planilha.
Eu digitei os números manualmente e funcionou perfeitamente.
Se você esta usando código para passar os números para a planilha, faça a conversão para currency ou double. Por exemplo:

plan1.range("A1").value = ccur(textbox1.text)

Ou:

plan1.range("A1").value = cdbl(textbox1.text)

Esse problema ocorre porque, quando o dado vem de uma caixa de TEXTO, o dado é considerado como TEXTO (String). Por isso, é necessário converter o TEXTO para NÚMERO.

Respondi, nesta semana, outro tópico com o mesmo assunto:

http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=28035

Este site fala sobre funções para conversão de dados:

https://docs.microsoft.com/pt-br/dotnet/visual-basic/language-reference/functions/type-conversion-functions

 
Postado : 18/04/2018 6:50 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu copio todo o conteúdo de um programa aqui da empresa e colo na planilha, não estou usando form.
Digitei os valores novamente na célula colada e deu certo. Mas não é viável eu fazer isso toda vez, é muita coisa todo dia.
Teria uma macro para mudar isso?

 
Postado : 18/04/2018 7:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Dunguinha

Conforme as regras do fórum, não é permitido criar mais de um tópico sobre a mesma dúvida.

Acesse o link abaixo para ver como proceder:

viewtopic.php?f=7&t=16757

[]s

Patropi - Moderador

 
Postado : 18/04/2018 7:38 am
(@klarc28)
Posts: 0
New Member
 
Option Explicit

Sub ORDEMCRESCENTE()
    
    Application.ScreenUpdating = False
    
    
    
    Dim LINHA As Long
    
    For LINHA = 1 To Plan1.UsedRange.Rows.Count
    
    If Plan1.Range("Q" & LINHA).Value <> "" Then
    
    Plan1.Range("Q" & LINHA).Value = CDbl(Plan1.Range("Q" & LINHA).Value)
    
    End If
    
    Next LINHA
    
    For LINHA = 3 To Range("B" & Rows.Count).End(xlUp).Row + 3
        
        If Plan1.Range("B" & LINHA).Value = "" And Plan1.Range("B" & LINHA + 1).Value = "" Then
            
            Plan1.Range("B" & LINHA - 1).Select
            Selection.End(xlUp).Select
            
            Dim LINHAINICIAL As Long
            
            LINHAINICIAL = Selection.Row
            
            Plan1.Range("B" & LINHA - 1).Select
            Range(Selection, Selection.End(xlUp)).Select
            
            Plan1.Range(Selection, Selection.End(xlToRight)).Select
            
            Dim INTERVALO As String
            
            INTERVALO = Selection.Address
            
            ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Clear
            ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("Q" & LINHAINICIAL & ":Q" & LINHA - 1), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            
            With ActiveWorkbook.Worksheets("Plan1").Sort
                .SetRange Range(INTERVALO)
                .Header = xlGuess
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
            
                    LINHA = LINHA + 2

        End If
        
    Next LINHA
    
    Application.ScreenUpdating = True
    
End Sub

 
Postado : 18/04/2018 7:39 am