Classifique os dados por aniversário usando VBA no Microsoft Excel

Anonim

Neste artigo, criaremos uma macro para classificar os dados na planilha por aniversário e não consideraremos o ano ao classificar os dados.

Os dados brutos consistem em duas colunas, uma contém o nome e a segunda coluna contém a data de nascimento.

Explicação lógica

Nós criamos uma macro, “sorting_names_by_birthday” que irá classificar os dados.

Nesta macro, primeiro inserimos fórmulas na coluna C onde encontramos a diferença entre a data de nascimento e a primeira data do ano de nascimento. Em seguida, classificamos os dados por Nome para classificar os dados em ordem alfabética, de modo que, se dois candidatos tiverem a mesma data de nascimento, seus nomes deverão aparecer em ordem alfabética. Em seguida, classificamos os dados calculando a diferença em ordem crescente para classificar os dados por aniversário. Depois de classificar os dados, para excluir as fórmulas da coluna C, exclua toda a coluna C.

Para executar a macro, pressione Alt + F8 ou vá para a guia Desenvolvedor> clique em Macro.

Siga abaixo para o código

 Option Explicit Sub sorting_names_by_birthday () 'Desativando atualização de tela Application.ScreenUpdating = False Dim Last_Row As Long' Encontrando a última linha Last_Row = ActiveCell.SpecialCells (xlCellTypeLastCell) .Row Range ("C16"). Selecione 'Obtendo os dias do ano' Subtraindo a primeira data do ano da data de aniversário ActiveCell.FormulaR1C1 = "= RC [-1] -DATE (ANO (RC [-1]), 1,1)" 'Arrastando a fórmula Intervalo ("C16: C" & Last_Row) .Select Selection.FillDown 'Classificando os dados primeiro pela coluna A e depois pela coluna C Range ("A15"). CurrentRegion.Sort _ key1: = Range ("C15"), order1: = xlAscending, _ key2: = Range ("A15"), order2: = xlAscending, _ Header: = xlYes 'Excluindo as colunas C da coluna ("C"). Exclua o intervalo ("A15"). Selecione End Sub 

Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.

Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail