cerealkiller Posted April 29, 2017 Share Posted April 29, 2017 Olá amigos estou precisando de uma macro ou formula que faça isto colocar as DZ em ordem do menor para o maior Ex. 03 04 05 20 23 06 08 14 16 19 para 03 04 05 06 08 14 16 19 20 23. Eu sei que existe o classificar, mas a questão é que são muitas linhas e ele só faz linha a linha. Por enquanto obrigado. 1 Quote Link to comment Share on other sites More sharing options...
Nanilinho Posted April 29, 2017 Share Posted April 29, 2017 Olá @cerealkiller Veja se esta planilha ajuda serial.xls Quote Link to comment Share on other sites More sharing options...
Nanilinho Posted April 29, 2017 Share Posted April 29, 2017 Explicando Melhor Coloca suas dezenas em desordem e acima delas enumere de 1 até a ultima. Usando a função Menor,selecione o intervalo de desordem e congele ele( Pressione F4), o segundo argumento é o indice, que será usado a linha que você enumerou ali em cima. Qq avise 2 Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted April 29, 2017 Author Share Posted April 29, 2017 15 minutos atrás, Nanilinho disse: Explicando Melhor Coloca suas dezenas em desordem e acima delas enumere de 1 até a ultima. Usando a função Menor,selecione o intervalo de desordem e congele ele( Pressione F4), o segundo argumento é o indice, que será usado a linha que você enumerou ali em cima. Qq avise Obrigado Nanilinho, vamos ver se alguém aparece com uma formula também. Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted April 29, 2017 Author Share Posted April 29, 2017 20 minutos atrás, Nanilinho disse: Explicando Melhor Coloca suas dezenas em desordem e acima delas enumere de 1 até a ultima. Usando a função Menor,selecione o intervalo de desordem e congele ele( Pressione F4), o segundo argumento é o indice, que será usado a linha que você enumerou ali em cima. Qq avise @Nanilinho Por Favor, faça com esta linhas aqui para eu entender melhor quando a quantidade é maior, e muito obrigado pela ajuda. 07 19 01 10 13 18 22 09 12 24 04 08 14 20 23 03 06 16 17 21 07 11 25 01 10 18 22 05 12 15 24 04 08 14 20 03 06 16 17 21 07 11 19 25 10 13 18 05 09 12 15 24 04 08 20 23 03 16 17 21 07 11 19 25 01 10 13 18 22 05 09 15 04 08 14 23 03 06 16 21 02 19 25 13 18 22 05 12 15 24 04 08 14 20 23 03 06 16 17 21 02 11 25 01 10 13 18 22 05 09 12 15 04 08 20 23 03 06 17 21 02 11 19 25 01 10 18 22 05 09 12 15 24 04 14 20 23 03 06 16 02 07 25 01 10 13 18 22 05 09 12 15 24 04 08 14 23 03 16 17 02 07 19 25 01 10 18 05 09 15 24 04 08 14 20 23 06 16 17 21 02 07 11 25 10 13 18 22 09 12 15 24 08 14 20 23 06 16 17 21 02 07 11 19 01 13 18 22 09 12 15 24 04 08 14 20 23 03 16 21 02 07 11 19 01 10 13 18 05 09 12 15 24 04 08 14 03 06 17 21 02 07 11 19 25 10 13 22 05 09 12 15 04 14 20 03 06 16 17 21 02 07 11 19 25 01 13 22 05 09 12 24 04 08 14 20 23 06 17 21 02 07 11 19 25 01 10 13 22 12 15 24 04 08 23 03 06 16 17 21 02 07 11 19 25 01 10 13 18 22 05 12 24 14 20 23 03 16 17 21 02 07 11 19 25 01 10 13 18 22 05 09 15 24 08 20 03 06 16 17 Quote Link to comment Share on other sites More sharing options...
Nanilinho Posted April 29, 2017 Share Posted April 29, 2017 @cerealkiller.. veja aba "Linhas" serial.xls 2 Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted April 29, 2017 Author Share Posted April 29, 2017 2 minutos atrás, Nanilinho disse: @cerealkiller.. veja aba "Linhas" serial.xls Agora sim Nanilinho, muito mas muito agradecido mesmo. 1 Quote Link to comment Share on other sites More sharing options...
Ludo Parcheesi Posted April 29, 2017 Share Posted April 29, 2017 Caro CerealK, O Nanilinho sugeriu algo similar ao seguinte passo a passo: Imaginemos que suas linhas de análise se localizem a partir da célula [A2]. Sua última coluna ocupada será a [J]. Digite entre as células [L1:U1] números sequenciais de 1 a 10, deixando a coluna [K] livre para não misturar os conjuntos. Esses números serão nossos índices. Na célula [L2], insira a fórmula: =menor($A2:$J2;L$1) (ou copie a fórmula ao lado). Copie a célula L2, extenda seleção entre [M2:U2] e cole. Seu primeiro grupo estará ordenado. Extenda seleção [L2:U2], copie, extenda abaixo para quantas mais linhas tiver de organizar, e cole. Caso necessite utilizar os dados organizados em outra base de dados, copie e cole-os utilizando na área desejada: [botão direito do mouse] => [Colar Especial] => [Valores] Saúde e Sorte. 1 Quote Link to comment Share on other sites More sharing options...
Nanilinho Posted April 29, 2017 Share Posted April 29, 2017 1 minuto atrás, cerealkiller disse: Agora sim Nanilinho, muito mas muito agradecido mesmo. Por nada Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted April 29, 2017 Share Posted April 29, 2017 essa macro ordena em ordem crescente uma area selecionada na planilha facilmente adaptavel para range definida Sub Ordena_Seleção() Coluno = Selection.Value2 Lfim = UBound(Coluno, 1): TCo = UBound(Coluno, 2) ci1 = 1 ' coluna inicial de dados da array For Lx = 1 To Lfim inC = ci1: i = inC + 1 Do a = Coluno(Lx, inC): b = Coluno(Lx, inC + 1) If a > b Then Coluno(Lx, inC) = b: C = a Coluno(Lx, inC + 1) = C If inC > ci1 Then inC = inC - 1 Else inC = i: i = i + 1 End If Loop Until inC = TCo Next '---------------------------------------------------------------------------------------------------- Selection.Value2 = Coluno End Sub Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted April 29, 2017 Author Share Posted April 29, 2017 3 minutos atrás, edcronos2 disse: essa macro ordena em ordem crescente uma area selecionada na planilha facilmente adaptavel para range definida Sub Ordena_Seleção() Coluno = Selection.Value2 Lfim = UBound(Coluno, 1): TCo = UBound(Coluno, 2) ci1 = 1 ' coluna inicial de dados da array For Lx = 1 To Lfim inC = ci1: i = inC + 1 Do a = Coluno(Lx, inC): b = Coluno(Lx, inC + 1) If a > b Then Coluno(Lx, inC) = b: C = a Coluno(Lx, inC + 1) = C If inC > ci1 Then inC = inC - 1 Else inC = i: i = i + 1 End If Loop Until inC = TCo Next '---------------------------------------------------------------------------------------------------- Selection.Value2 = Coluno End Sub Nada melhor do que uma macro. Obrigado Universal amigo @edcronos2. 1 Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted April 29, 2017 Author Share Posted April 29, 2017 Obrigado a todos que ajudaram. Boa sorte para vocês sempre. 1 Quote Link to comment Share on other sites More sharing options...
pietruk Posted April 29, 2017 Share Posted April 29, 2017 Ajuda, Como organizar uma linha de resultados do maior para o menor inclusive com repetidas: Exemplo de como está: 03 05 09 03 07 09 05 08 07 Exemplo de como deve ficar: 09 09 08 07 07 05 05 03 03 Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted April 29, 2017 Author Share Posted April 29, 2017 6 minutos atrás, pietruk disse: Ajuda, Como organizar uma linha de resultados do maior para o menor inclusive com repetidas: Exemplo de como está: 03 05 09 03 07 09 05 08 07 Exemplo de como deve ficar: 09 09 08 07 07 05 05 03 03 A macro postada pelo universal @edcronos2, faz isto com os pés na costa 03 03 05 05 07 07 08 09 09 Basta selecionar as DZ, eu crie um botão, pois estou mexendo com muitas linhas. Desculpa ai pietruk...Eu entendi errado. Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted April 29, 2017 Share Posted April 29, 2017 3 minutos atrás, pietruk disse: Ajuda, Como organizar uma linha de resultados do maior para o menor inclusive com repetidas: Exemplo de como está: 03 05 09 03 07 09 05 08 07 Exemplo de como deve ficar: 09 09 08 07 07 05 05 03 03 bem vc pode ordenar em crescente e depois inverter, depois eu monto a macro, apesar que é só modificar um pouco essa que postei Quote Link to comment Share on other sites More sharing options...
pietruk Posted April 29, 2017 Share Posted April 29, 2017 7 minutos atrás, edcronos2 disse: bem vc pode ordenar em crescente e depois inverter, depois eu monto a macro, apesar que é só modificar um pouco essa que postei Posso usar sua macro no Excel ??? se sim seria possível me passar um exemplo, muito obrigado pela sua atenção Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted April 29, 2017 Share Posted April 29, 2017 28 minutos atrás, pietruk disse: Posso usar sua macro no Excel ??? se sim seria possível me passar um exemplo, muito obrigado pela sua atenção ela é para usar no excel mesmo no caso vc coloca em um modulo seleciona a range que quer organizar e roda a macro Quote Link to comment Share on other sites More sharing options...
Substantivo Posted April 29, 2017 Share Posted April 29, 2017 pietruk Ponha num modulo. Desenvolvedor --> Visual Basic --> Insira um módulo e cole a macro. Volte para a planilha, selecione os dados e rode a macro. Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted April 29, 2017 Share Posted April 29, 2017 bem para colocar em ordem decrescente modifiquei um pouco a macro para usar uma range fixa bastando modificar as letras e os numeros coluna_inicial = "b" coluna_final = "h" Linha_inicial = 6 linha_final = 7 Sub Ordena_Seleção_decrescente() coluna_inicial = "b" coluna_final = "h" Linha_inicial = 6 linha_final = 7 Coluno = Range(coluna_inicial & Linha_inicial, coluna_final & linha_final).Value2 Lfim = UBound(Coluno, 1): TCo = UBound(Coluno, 2) ci1 = 1 ' coluna inicial de dados da array For Lx = 1 To Lfim inC = ci1 i = inC + 1 Do a = Coluno(Lx, inC): b = Coluno(Lx, inC + 1) If a < b Then Coluno(Lx, inC) = b: C = a Coluno(Lx, inC + 1) = C If inC > ci1 Then inC = inC - 1 Else inC = i: i = i + 1 End If Loop Until inC = TCo Next '---------------------------------------------------------------------------------------------------- Range(coluna_inicial & Linha_inicial, coluna_final & linha_final).Value2 = Coluno End Sub Quote Link to comment Share on other sites More sharing options...
Wata Posted May 1, 2017 Share Posted May 1, 2017 Crescente: Sub Crescente() Dim myRow As Range For Each myRow In Selection.Rows myRow.Sort myRow.Cells(1), xlAscending, Header:=xlNo, Orientation:=xlSortRows Next myRow End Sub Ou decrescente: Sub Decrescente() Dim myRow As Range For Each myRow In Selection.Rows myRow.Sort myRow.Cells(1), xlDescending, Header:=xlNo, Orientation:=xlSortRows Next myRow End Sub Não entendo disso. Peguei por aí. Não vou dar os devidos créditos porque não lembro mais...... ... 1 Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted May 1, 2017 Author Share Posted May 1, 2017 46 minutos atrás, Wata disse: Crescente: Sub Crescente() Dim myRow As Range For Each myRow In Selection.Rows myRow.Sort myRow.Cells(1), xlAscending, Header:=xlNo, Orientation:=xlSortRows Next myRow End Sub Ou decrescente: Sub Decrescente() Dim myRow As Range For Each myRow In Selection.Rows myRow.Sort myRow.Cells(1), xlDescending, Header:=xlNo, Orientation:=xlSortRows Next myRow End Sub Não entendo disso. Peguei por aí. Não vou dar os devidos créditos porque não lembro mais...... ... Obrigado Wata. Valews. 1 Quote Link to comment Share on other sites More sharing options...
pietruk Posted May 1, 2017 Share Posted May 1, 2017 Muito obrigado a todos !!! Quote Link to comment Share on other sites More sharing options...
Antonio Tadeu Posted September 12, 2017 Share Posted September 12, 2017 Muito obrigado a todos !!! Quote Link to comment Share on other sites More sharing options...
Joh2010 Posted September 12, 2017 Share Posted September 12, 2017 1 minuto atrás, Antonio Tadeu disse: Muito obrigado a todos !!! Meu amigo, o que eu mais acho estranho nesse fórum é que sempre que estou estudando alguma coisa alguém também está e posta alguma pergunta ou post sobre a mesma coisa!!! É SÉRIO. kkk Sei que o pessoal já te ajudou, mas segue planilha que acabei de fazer, prefiro fórmulas do que macros então... http://www.mediafire.com/file/xac8iwidqb0zvqb/FÓRMULA_ORDENAR.xlsx Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.