Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#49182
Bom dia Pessoal,

Precisava de ajuda para criar uma macro que ordene a coluna A numericamente e a coluna B alfabeticamente, mas tambem que eu possa ir acrescentando nomes ate ao final da lista.
A macro que esta criada nao ordena abaixo da linha 150.

Pessoal precisava mesmo de ajuda era muito importante para o meu trabalho.
Obrigado pessoal.
Você não está autorizado a ver ou baixar esse anexo.
#49183
Olá Ricardo,

Quando montei a macro, esqueci um 150 dentro dela, que usei apenas para testes. Corrigido!

Você não especificou o que deve ser feito com os zeros, ou seja, com as linhas sem preenchimento. Se classificar direto, eles vão ficar nas linhas de cima. Eu contornei isso, mas sem saber ao certo se é assim que precisa. Se referir que eles entrem na classificação normal, as linhas com zeros vão ficar em cima, e as com código digitado lá em baixo. Se for assim que necessita, avise que altero.

Veja de da forma que está te atende.

Jimmy San Juan
Você não está autorizado a ver ou baixar esse anexo.
Editado pela última vez por Jimmy em 14 Out 2019 às 18:50, em um total de 1 vez.
#49208
Obrigado Jimmy,
É isto mesmo como está, perfeito.
Agora estou a tentar fazer a macro para o meu excel, o que coloquei aqui era só uma demonstração.
Está alguma formula nesta coluna "XYZ¨


Sub Classifica()
Lin = Range("A" & Rows.Count).End(xlUp).Row
Col = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Column
Col = Replace(Cells(1, Col).Address(0, 0), "1", "")

Columns(Col).Replace What:="0", Replacement:="XYZ¨", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Set Rng1 = Range(Col & "4:" & Col & Lin)
Set Rng2 = Range("A4:AJ" & Lin)
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Rng1 _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort: .SetRange Range("A4:AJ" & Lin)
.Header = xlGuess: .MatchCase = False: .Orientation = xlTopToBottom
.SortMethod = xlPinYin: .Apply
End With

Columns(Col).Replace What:="XYZ¨", Replacement:="0", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
#49217
Olá Ricardo,
ricardosilvercup escreveu:Está alguma formula nesta coluna "XYZ¨
Não entendi sua frase acima. Se está perguntando sobre o "XYZ¨", te explico. Quando selecionamos a coluna com números, e fazemos uma classificação ascendente, os valores zero ficam na parte de cima. Achei que não era isso o que você pretendia. Inicialmente pensei que as linhas iam sendo preenchidas na sequencia, e assim, partindo de baixo para cima, procurei a primeira célula diferente de zero da coluna. Marquei a faixa de classificação desde a linha 2 até essa linha, de forma que os zeros que vinham abaixo ficaram de fora da classificação. Isso evitou que fossem parar nas linhas de cima da planilha.

Depois vi que você digitou valores na linha 155, deixando a 151 até 154 com zeros. Então mudei a tática. Antes da classificação substituo todos os zeros pelo texto "XYZ¨". A segui classifico toda a coluna. Os valores ficam em cima, e as linhas que contém esse texto em baixo. Encerro substituindo os "XYZ¨" por zero de volta.

Quanto à essa nova planilha sua, me diga em quais planilhas e em quais colunas essa classificação deverá ser feita. É possível que possamos usar a mesma macro para classificar várias colunas em várias planilhas.

Jimmy San Juan
Editado pela última vez por Jimmy em 17 Out 2019 às 08:45, em um total de 1 vez.
#49224
Bom dia Jimmy,

Na nova planilha onde tenho que colocar a macro é nos separadores "Caçadas de Pombos" e "Caçadas de Perdizes, sim eu penso que a macro que voçe criou pode ser a mesma.
A macro é para ficar como está com os valores em cima e zeros em baixo, está excelente essa macro.
#49225
Bom dia Ricardo,

Está feito e faltam os seus testes.

Houve várias mudanças porque a planilha inicial, para a qual a macro foi desenvolvida, é diferente da real.

A linha inicial dos dados ficou fixa em 357. Se isso mudar, tem que mudar dentro da macro. Tentei encontrar um critério para a macro localizar essa linha, mas não encontrei.

Tive que usar uma coluna auxiliar, porque aquela substituição que estava sendo feita (XYZ) não se aplica mais nesta planilha final, porque ela tem fórmula em todas as colunas. Agora copio para a coluna auxiliar, que eu escolhi ser a coluna "A" (pode ser mudado, se necessário), as substituições são feitas, a coluna Auxiliar é classificada e apagada.

A macro está em módulo chamado Classifica.

Jimmy San Juan
Editado pela última vez por Jimmy em 17 Out 2019 às 08:44, em um total de 1 vez.
#49342
Bom dia Ricardo,

Está feito e faltam os seus testes.

Houve várias mudanças porque a planilha inicial, para a qual a macro foi desenvolvida, é diferente da real.

A linha inicial dos dados ficou fixa em 357. Se isso mudar, tem que mudar dentro da macro. Tentei encontrar um critério para a macro localizar essa linha, mas não encontrei.

Tive que usar uma coluna auxiliar, porque aquela substituição que estava sendo feita (XYZ) não se aplica mais nesta planilha final, porque ela tem fórmula em todas as colunas. Agora copio para a coluna auxiliar, que eu escolhi ser a coluna "A" (pode ser mudado, se necessário), as substituições são feitas, a coluna Auxiliar é classificada e apagada.

A macro está em módulo chamado Classifica.

Se esta mensagem colabora para a solução do problema, peço que dê um Like, clicando no botão com o "positivo", acima e a direita.

Jimmy San Juan
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord